Re: Darcs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux