On Sun, 24 Jun 2007, Bu Bacoo wrote: > > What do you think about darcs? > > There was a lot written/spoken about morons and stupidos around > thinking in cvs / svn, etc... (what would be the words for dudes > around vss ....). Ahh, a chance to flame! I will never back down from such a challenge! Darcs is .. umm .. ehh.. "Academic". Ok, I realize that's a pretty weak flame, and I'm sorry. It's not that darcs users are "stupid" or "complete morons" or "donkey turds with arms and legs", it's just that the whole project is centered around some academic ideas that have absolutely no relevance in real life, and that just don't work in practice. In other words, it's a fun project, but it's largely irrelevant. The whole underpinning of darcs ("everything is a collection of patches" and the "patch algebra") is kind of interesting, but it's irrelevant. The thing it solves is not the thing you want solved, and you really don't want to handle conflicts at a "patch" level. I personally think darcs is closer to a smart "quilt" than a "final" SCM. It's good for keeping track of patches, but let's face it, if you have really big changes, you don't want to handle them the way darcs does. And in that sense, I do think the two approaches can _complement_ each other. A lot of people use quilt (or quite often, something similar, based on a SCM in the background: git has and stgit and guilt, hg has "mercurial queues"). And it's absolutely true that you want to have a "fluid" level too, and darcs can do that. But you do *not* want to do the whole project history that way. At some point, you need something that works at another level than patch queues. Darcs itself kind of has something like this with "checkpointing", but the fact is, git is just better at this. So it basically boils down to the fact that I don't think darcs solves the real problems, and won't scale up. It's versioning model seems *totally* broken, for example. Fundmantal example: somebody has a problem/bug. Tell me how to tell a developer what his exact version is - without creating new tags, and without having to synchronize the archives. Just tell the developer what version he is at. In git, you just give a revision number. In darcs, what the *hell* do you do? And that's a pretty damn fundamental operation for a source control management setup! As far as I know, darcs only has patch identities. Linus - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html