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

Trent W. Buck twb at cybersource.com.au
Wed Jul 22 01:37:01 UTC 2009


Would you be so good as to dump this information into the wiki?
It will help me when I get around to rewriting "darcs rollback --help",
which I have avoided up until now because I've never really been clear
on the exact behaviour of rollback in nontrivial cases like this.

Nathan Gray <kolibrie at graystudios.org> writes:

> 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