[darcs-users] *practical* differences between darcs' patch model and git/mercurial's?

Matt Palmer mpalmer at hezmatt.org
Sun Oct 21 08:28:30 UTC 2007

On Sun, Oct 21, 2007 at 12:46:34AM -0700, Adam Megacz wrote:
> I'm aware that darcs' theory of patches is completely different from
> the "ingrown tree" model that git and mercurial use.  But does this
> huge theoretical difference translate to any real difference in
> practice?

Cherry picking.  Darcs' cherry picking abilities are fantastic, while every
other system (and I've tried most of 'em by now) seems to have at least one
big inhibitor to cherry picking.  For the way I work on the systems I work
on, good cherry picking is a must.

> As far as I can tell, most user-visible differences should arise from
> the fact that non-conflicting merges are invisible in darcs, but
> explicit in git/mercurial.


> I suppose this might matter if you have multiple developers performing
> identical nonconflicting merges independently.  In a situation like
> that, having each developer generating their own merge-patches could
> be bad, because then locally generated patches would seem to have
> different histories (ie include different mergers) when in fact the
> set of nontrivial patches in the history of each local change is
> identical.

I've seen instructions in projects' development guides to avoid merging when
it's not absolutely necessary to avoid polluting the change history with
merges.  A revision control system that makes its users avoid merges seems a
bit suboptimal to me.

- Matt

Some people are like slinkies.  They are fun and don't actually serve any
real purpose, but they still make you smile when you push them down the

More information about the darcs-users mailing list