I used to be pretty happy with Darcs, but now that the repository contains some 3600 patches, Darcs just doesn't scale anymore. The situation is so bad that I'm not sure I'll be able to actually push the new module system patches -- so far I have 8 rather large patches which move a lot of files around, and I'm unable to push it to my x86 box on the LAN. Also Doug has been complaining about Darcs on Windows -- sometimes it takes 10 minutes to record a patch, stuff like that.
Now I don't know if Darcs is using lousy algorithms, or if writing fast code in Haskell is too hard, or if Darcs is simply not designed for larger projects, but I don't want to put up with it anymore. Darcs was a huge improvement over CVS, but now the Factor project has outgrown it.
Anybody know of a distributed version control system which can cope with larger repositories? If I'm unable to push out my current set of changes, I might have to switch to a new VCS really soon now.
Subscribe to:
Post Comments (Atom)
14 comments:
I take it 'darcs optimize --checkpoint' doesn't help much?
Darcs' whole current approach is flawed. The only other viable alternatives in my mind are Git or Mercurial (for me, in that order).
I like darcs a lot, but I'll agree that it has big issues with scaling. It's a known algorithmic issue and there's a project working on fixing it at the moment.
However, for an immediate solution I think git and hg (mercurial) are the only reasonable solutions. It used to be the case that git was far too complex for anyone save Linus to use very well, but the documentation has improved a lot recently. Hg is very similar in design (it's just written in Python) and even Linus admits that it's a good VCS[1].
Between them - I don't know. Flip a coin? Whichever you choose, lookup the queues support (it's a subproject in both). They give you quilt[2] like functionality, which I find very helpful.
[1] http://video.google.com/url?docid=-2199332044603874737&esrc=sr1&ev=v&q=linus&vidurl=http://www.youtube.com/watch%3Fv%3D4XpnKHJAok8&usg=AL29H208a955P74_t2gM4t8Jz8cYMjdMBg
[2] http://savannah.nongnu.org/projects/quilt
Mozilla are moving (have moved?) to Mercurial http://weblogs.mozillazine.org/preed/2007/04/version_control_system_shootou_1.html
Hey, as I already
told about it, I maintain
an up-to-date , so you can check immediately how suitable is Mercurial for you.
My 2c: Git has a very complex UI, while Mercurial is just as
easy and intuive to use as darcs. I believe that a version control tool should get out of
the way. That's one reason to prefer Mercurial. The other is the better support for Windows.
Factor supports Windows so its
VCS is expected to do that equally well.
Hey, as I already
told about it, I maintain
an up-to-date , so you can check immediately how suitable is Mercurial for you.
My 2c: Git has a very complex UI, while Mercurial is just as
easy and intuive to use as darcs. I believe that a version control tool should get out of
the way. That's one reason to prefer Mercurial. The other is the better support for Windows.
Factor supports Windows so its
VCS is expected to do that equally well.
git is pretty good, io moved to that a couple months ago.
Mercurial seems the best options, and huge projects like OpenSolaris move (have moved?) to it, so it should handle large projects.
Other Projects using it:
http://www.selenic.com/mercurial/wiki/index.cgi/ProjectsUsingMercurial
A quite impressive list.
I'm not sure about git... from what I know they have problems on anything that's not Linux.
Sun also decided to use Mercurial as the new VCS for the OpenJDK.
Currently Mercurial seems to be the best option. As has already been mentioned, OpenSolaris and Mozilla are using it.
You might also be interested in John Goerzen's evaluation of current distributed VCSs here:
http://changelog.complete.org/index.php?serendipity%5Baction%5D=search&serendipity%5BsearchTerm%5D=mercurial
Hi Slava,
good to see you working so hard on Factor.
Please see Linus speaking on git
http://www.youtube.com/watch?v=4XpnKHJAok8
Hi Slava,
good to see you are working so hard on Factor. Hadn't got a chance to work with the latest release because I am busy with my work.
Please see Linus speaking on git
http://www.youtube.com/watch?v=4XpnKHJAok8
Take care,
Hans aka dressguard
(maybe you remember me from the FFT code. I extended it actually to 2d and calculated some diffraction patterns with it.)
I have heard good things about git also.
Hi Slava,
I also had bad experiences with Darcs (the "poison patch", where you cannot checkout anymore). I switched to Mercurial, which much faster and less error-prone (IMO).
Post a Comment