[darcs-users] unique features + exponential time issue

Hilary Oliver h.oliver at niwa.co.nz
Tue Oct 16 02:02:53 UTC 2007

We have used darcs at my workplace for a couple of years now, and it has 
proved to be an extremely useful tool.  In my opinion darcs was the 
first system to make revision control so easy that only an idiot 
wouldn't do it (and I could never return to a centralized system).   We 
have, however, run into the infamous "exponential time" merge problem 
twice, and when that happens it is effectively an insurmountable barrier 
to most users.  I would hate to see darcs fade into obscurity on account 
of this problem because it is otherwise such a nice program to use, but 
the fact is there are now several other distributed systems available 
which by all accounts do not suffer from problems like this and are also 
much faster than darcs.  To prevent mass user discouragement before the 
much anticipated bug fix comes through, it would be good if someone with 
a deep understanding of darcs could clearly articulate, for the rest of 
us, (a) exactly what brings this problem on, how to avoid it, and what 
to do if it does happen, and (b) to counter this serious disadvantage, 
what advantages can darcs claim over mercurial and git?

There is some information about exponential time merge / "conflict 
misery" on the darcs wiki but it is selfconfessedly written by someone 
who does not fully understand the problem himself.  If users are to have 
confidence that they can use darcs without running into this serious 
problem, they need to understand exactly what to do in order to avoid it 
(not just read about a single case that happened for reasons not 
entirely clear to the victim).

As for unique positive features, which I presume are mostly consequences 
of darcs' underlying patch theory, these should be explicitly 
highlighted because they are the features we are not going to find in 
any other revision control system that might tempt us away from darcs.  

Hilary Oliver

More information about the darcs-users mailing list