[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.

-kolibrie



More information about the darcs-users mailing list