[darcs-users] unique features + exponential time issue

Alexander Staubo alex at purefiction.net
Wed Oct 17 22:09:40 UTC 2007

On 10/17/07, Stephen J. Turnbull <stephen at xemacs.org> wrote:
> On 10/16/07, Alexander Staubo <alex at purefiction.net> wrote:
> > Darcs has many good things going for it; development momentum is not
> > one of them, I am afraid. (If you're curious, nobody took up the
> > bounty offer.)
> I think that's unfair.  There's plenty of activity going on, but
> mostly on routine
> programming stuff: better testing, refactoring, using new features of GHC to
> prepare for algorithmic revisions, etc.

There seems to be very little activity regarding stuff that users
actually see and care about, which is what matters.

There's the conflict misery problem, Darcs is still slow as heck (yes,
even for non-conflicting patches), conflict handling generally sucks
[1], the Mac version is still impossible to use with the control
master feature enabled [2], the working directory I/O is incredibly
brittle because it not done atomically [3], the repository format is
bloated [4], binary file performance is *awful*, etc.

I realize I'm getting off the topic and that I sound a bit testy --
but from where I'm standing, it feels like it's been a long time since
Darcs got any new important features that did anything to improve an
ordinary developer's workflow. "darcs put" back in early 2005 was
great stuff, though.

[1] All the fancy talk about patch theory comes to nought when you get
bogus conflicts, like when *nothing was changed*. Or when you inserted
code into the same spot as someone else. It happens all the time here.

[2] Darcs stalls almost consistently on Darwin/Intel when using
OpenSSH's control master support. This is presumably the reason why
it's off by default now.

[3] Our team constantly experiences local and remote repo problems
that have to be cleaned up with "darcs repair". For example, if a push
fails to write a pristine file because of a file permission/ownership
problem, the patch is spilled all over your repo until you do a "darcs
revert"; same if you break Darcs in the middle of applying a patch.
(There are other cases where Darcs will bork your working directory: A
colleague lost a couple of days' worth of unrecorded work because he
pulled a patch that happened to add a new directory with the same name
as the one he had created locally and was working in.)

[4] At least compared to git.


More information about the darcs-users mailing list