I’ve decided to use Bazaar as my distributed version control system for personal projects. Like everyone else, I was also considering Git and Mercurial. Here’s a nice comparison of DVCS systems. My priorities are (1) that it be easily portable across platforms and (2) it be very easy to use. Git loses on both counts, while the other two are tied. I don’t care at all about performance because my projects are small. The feature that broke the tie between the other two is renaming. Bazaar treats renaming as a primitive operation, whereas Mercurial treats it as a copy and delete. The result is that Mercurial doesn’t show the log of the “copied” file unless you explicitly say “hg log –follow”. In the beginning of my projects, I rename files and directories a lot to make things more manageable. I want a system that makes it easy and obvious. Nevertheless, I’ll be forced to use all the other DVCS tools if I want to tweak open source code. So picking Bazaar doesn’t change the fact that I still have to learn the other two. Thankfully, their main operations are so similar that it shouldn’t take long to figure them out.[ed: I'm using etckeeper with Git to track changes in my /etc directory]
May 15, 2008 at 11:10 pm |
…while Git does rename (and copy) *detection*, and not *tracking*. Note also that rename tracking is usually done using some kind of inode / file-ids system, with its usual disadvantages.
July 3, 2008 at 11:33 am |
thanks!
what about darcs ?
July 5, 2008 at 10:49 pm |
darcs, monotone and arch have small user communities, so I didn’t even look at them.