[darcs-users] How to develop on a (GHC) branch with darcs

Ganesh Sittampalam ganesh at earth.li
Sat Dec 11 20:29:49 UTC 2010


Cutting the CC list further.

On Fri, 10 Dec 2010, Stephen J. Turnbull wrote:

> n.b. GHC Users cut because it doesn't know me and I don't have time to
> introduce myself. :-)
>
> Ganesh Sittampalam writes:
>
> > darcs rebase is essentially about giving up on the recombinant patching
> > because that's not working out for whatever reason. It's primarily
> > intended as an alternative to manually reapplying patches to new branches
>
> OK.  I'm still not sure it's a good name.  Although git rebase is
> deprecated for certain use cases by everybody, and considered criminal
> in any usage by a few, nevertheless it's an operation that many people
> use very frequently.  Such a mode of operation is an alternative to
> patch queues (quilt, stacked git, Mercurial queues, bzr pipelines).
>
> I get the impression that darcs rebase is not intended to be used that
> way.  If so, the command name might want to be different.  It's a
> tough call; if the implementation is basically the same, some people
> will complain "it works (implementation) just like git rebase, why
> don't you just call it 'rebase'?"  OTOH, if the workflow differs,
> other people will complain, "it doesn't work (workflow) at all like
> git rebase; why does darcs suck so much?"  We don't need that!

The basic behaviour will be somewhat similar, modulo the fact that we're 
working with trees rather than patches, and you ought to be able to use it 
for all the things you would use git rebase for. The main difference would 
be that there are preferred alternatives in darcs for many of those 
things, at least in the cases where they work out well. So to some extent 
this may "just" be a matter of documentation.

> Mercurial calls its rebase extension "transplant"; bzr's is "rewrite"
> (but it provides a command named "rebase", IIRC).  Another possibility
> for the darcs command would be "reorder", I think (what does "base"
> mean in Darcs, anyway?)

In essence the "base" of a patch would be its dependencies.

I think "reorder" doesn't really describe what the command will do and 
would lead to confusion with reordering patches by commutation. I did 
originally intend to call it "transplant" but then switch to rebase for 
consistency with git.

Cheers,

Ganesh


More information about the darcs-users mailing list