[darcs-users] Rollback a patch with dependencies

Nigel Rowe rho at swiftdsl.com.au
Sun May 16 08:48:58 UTC 2004

Hash: SHA1

I know this was discussed back in April, but it's just bitten me, and I can't 
understand why rollback wont work.  (Unpull not working I can understand.)

I have a repository with
    patch A
    patch B
    patch C
    tag T
    patch D
and I want to end up with a repository that no longer has patch B applied, as 
a preparatory step to doing something equivalent to, but quite different from 
B.  (Ie, take out feature X and replace it with feature X' ).

$ darcs rollback --patch-name B
Skipping dependent patch:
Thu May 13 00:03:27 EST 2004  rho at swiftdsl.com.au
  * B
Cancelling rollback since no patch was selected.

(As an aside, "Skipping dependent patch" seems the wrong message, since T is 
dependent on B, but it's B that was skipped.  Possibly precursor or 
antecedent, would be a better word?)

David said at the time of the original discussion
> The fundamental problem is that darcs takes dependencies seriously
and I can see that T depends on B (by definition, since T is a tag).  

But in the context of trying to do a rollback, so what!  I'm trying to create 
a *new* patch called "UNDO B" that is the inverse of "B", not trying to 
change anything prior to T.

In the end I did something like

$ darcs diff -u --patch-name B -patch-name A | patch -p1
$ darcs record --patch-name "Undo B"

which worked, but the diff could have been unappliable by patch, its ugly and 
isn't that what rollback is supposed to do?.

Bottom line:  Since rollback is creating a new patch, it shouldn't skip 
dependent (ie precursor) patches.  (*I* think)

- -- 
	Nigel Rowe
	rho at swiftdsl.com.au

Version: GnuPG v1.2.2 (GNU/Linux)


More information about the darcs-users mailing list