[darcs-users] rolling back across a tag boundery - was: Naming consistency between darcs and other DVCSs

Nathan Gray kolibrie at graystudios.org
Mon Jul 20 15:53:43 UTC 2009

On Fri, Jul 17, 2009 at 03:59:47PM -0400, Max Battcher wrote:
> Eric Kow wrote:
>> On Fri, Jul 17, 2009 at 10:30:07 -0400, Nathan Gray wrote:
>>> My use case is when we discover a bug the day after a launch, and need
>>> to rollback a patch.  We tag each deployment, and would like to keep
>>> that history.  Currently we have to unpull the tag, then we usually
>>> just unpull the offending patch and re-tag.  But then the history of
>>> us tagging, needing to remove a patch, and re-tagging are lost.  All
>>> that remains is a tag showing we deployed a day late.
>> Unpulling the tag, rolling back and pulling the tag back in should
>> also work, right?
> It's easier than that: you just tell rollback to "rollback" the tag(s)  
> that is blocking you, which doesn't actually do anything because darcs  
> doesn't have a tag primitive patch inverse, and then darcs will prompt  
> you for the patches in that tag. It feels like an odd thing to do, and  
> my assumption is that it is the only remaining artifact of patch  
> dependencies in rollback.

I did a test of this using:

  darcs 1.0.9
  darcs 2.0.2
  darcs 2.2.0
  darcs 2.3.pre4

It appears that darcs1 cannot rollback any patch included within a
tag.  It pretends to rollback a tag itself, but just appears to add an
additional tag patch.

All of the darcs2 versions I tried could rollback a patch included
within a tag, so long as the tag was also rolled back.  This worked
whether the repo was in darcs2 or darcs1 format.

I was sure I tried this with darcs2 at some point in the past and had it
not work.  Maybe I was doing something else weird that caused it not
to work, or am just misremembering.

So the good news is, it appears this is working in darcs2.


More information about the darcs-users mailing list