[darcs-devel] [issue555] Possibility to return to a previous version without loosing the changes

Petr Rockai me at mornfall.net
Mon Oct 29 21:28:36 UTC 2007


Hi,

Eric Kow writes:
> I understand.  Bzr has this feature, I think.  Personally, I'm not keen
> on the idea, because it introduces new commands/flags into darcs. But I
> can also see that it might be very useful.
>
> If anybody wants to implement it, perhaps a good user interface for it
> would be to have a hide and unhide command, which would accept the same
> patch matching arguments as obliterate and pull respectively.
> Alternatively, we could also have some flags for obliterate and pull.
Well, what i was thinking originally was a way to "retire" patches in
a way that would be pullable. So you would have a separate "retired"
inventory, which would list things that are disabled. On pull, you
could be prompted that the other side has patches X and Y disabled
(retired), and whether you want to follow. That way, you could
implement a fairly safe unpull. Question is, how much this overlaps
with cancellation patches and how much of this could be implemented in
terms of the latter.

Basically, i do not understand anything at all about the cancellation
patch work, but at a very intuitive level, i would imagine, that
recording a cancellation patch would be equivalent to "retiring" the
cancelled patch. Question is what happens when you want to un-cancel a
patch, whether you record a cancel-cancellation patch? This nicely
tracks history of the patch inclusion/exclusion, but it might pose
problems elsewhere? Not that i see any obvious, maybe just this:

With "retirement", the patch disappears from the patch set completely,
so things that would be unable to commute past the retired patch now
can commute freely (and therefore could be eg. retired as well). And
since i don't know how cancellation patches work, i don't know if that
effect is possible with those at all. Since once you cancel a patch
and commute something out and eg. remove it, then you cannot un-cancel
that patch (which is fine, and right now i cannot think of an example
where things break down, nor i am sure that they don't -- i should
really study a little the cancellation patches and their
commutation). But if anyone with more insight would want to clarify, i
am very curious, so thanks in advance.

> Obliterate is the preferred name, deliberately chosen to be 'scary'
> because the user might lose information by using it recklessly.  For
> what it's worth, the unpull command is now hidden in the current stable
> branch so that it no longer shows up in the help, or in autocompletion.
I always use unpull : - (.

-- 
Peter Rockai | me()mornfall!net | prockai()redhat!com
 http://blog.mornfall.net | http://web.mornfall.net

"In My Egotistical Opinion, most people's C programs should be
 indented six feet downward and covered with dirt."
     -- Blair P. Houghton on the subject of C program indentation


More information about the darcs-devel mailing list