[darcs-users] About darcs darcs repo as an darcs usage example...

Simon Michael simon at joyful.com
Wed Mar 11 18:24:29 UTC 2009

> So yes, while you can certainly use darcs in medium-sized projects, you need to
> take some precautions in doing so. Apparently, darcs users fell into a habit of
> avoiding the pitfalls semi-subconsciously. But you can't expect newcomers to
> the tool to be able to do that, and they are much more likely to end up in one
> (or more) of such pitfalls.

I think you're on to something there. I've been using darcs on multiple 
repos for years and mostly it has been and remains a joy; I love it. 
This contrasts with the painful stories we hear now and then from other 
darcs-using projects. Usually they are the ones without a resident darcs 

My biggest repo has 50M of content. My oldest has 2000 patches and 20 
contributors, but typically at most 2 are active at one time. I don't do 
a whole lot of branching. I definitely learned to try and avoid 
high-conflict situations, when after a few years of use my darcs 1 repos 
started getting exponential record/pull times. I resolved it then by 
re-recording conflicting patches as a single new one. My motto then was 
"no conflicts in the repo!".

Converting to darcs 2 format seemed to resolve this but I have mostly 
kept the habit. For example I try to pull from upstream before 
recording, so that I can deal with a conflict there and then, rather 
than record a separate conflict resolution patch. It's not that I feel 
this is necessary with darcs 2, but it keeps the history cleaner and 
life simpler.

One thing I have experienced, is that when I do run into problems with a 
darcs, they are almost certainly "shallow" in the sense that once I find 
out what's going on it is pretty easy (a) to undo/recover/resolve it and 
(b) to reason about. This is key; it's easy for me to understand what 
happened at every step and be confident that the repo contains what I 
think it does. I find this much harder with other rcs's.


More information about the darcs-users mailing list