On Tue, Mar 04, 2008 at 11:18:17AM -0500, Gary King wrote:
With my usual hat on (the one with funny ears), I'm wondering "why not darcs?". Did darcs lose out in the DVCS "wars" because they haven't managed to fix the "exponential time" bug?
As far as I know it can explode into exponential time, with generally unpleasant actions required to fix it, because of doing actions (repeated merges) that are common and something that you really want to do in a distributed version control system. That's a pretty critical problem, IMHO. Maybe most projects don't get there, but I managed to wedge Darcs almost immediately when trying to use it on SBCL.
I also don't like the fact that Darcs doesn't really model history, which I consider to be a very important part of a SCM. In almost all other systems, there a unique identifier, usually 40 characters or less, that can uniquely identify each and every revision, globally. In darcs, you either have to have a long patchset file, or you have to tag (how CVS!) to identify a version.
I like the patch algebra idea, but in practical terms I feel I can achieve almost all the same benefits with Git's rebasing tools. (And in fact sometimes more benefit; I often want to remove or add a patch in a way that isn't "clean" in Darcs' view of the world, so I would have to go to extra effort to do it in Darcs as well.)
-bcd