Revision Control Systems

I’ve been looking for something (other than regular backups) to keep a history of my personal development projects.
Once upon a time, I used Perforce (the free 2 client license), but I’ve never really gotten on with it that well; probably using about 2% of its features. It also uses a rather different terminology to what I am used to.
Looking for alternatives, I ended up trying out darcs, and it is easy to use and does what I want from it. An additional bonus is, that you can work disconnectedly (as each workspace is also a repository) and that it does not try to reinvent the wheel by not having its own server / network protocol. Simply get access to the files any way you can (e.g. http, ftp, ssh, …).
This serves me quite well when developing the same project on more than one machine, although darcs most decidedly does not like keyboard-interactive ssh authentication. It simply fails to get the patches (using sftp), although manual sftp / scp and ssh work fine (using Ubuntu Linux to get a repository from Mac OS 10.4). Using non-interactive key-based authentication works fine, however.
It is written in Haskell, which has some unwieldly dependencies unless linked statically; I have to admit I’d feel slightly better were darcs written in something else (e.g. Python or Ruby). But, as long as it works… 😉
I also took a look at Codeville but that doesn’t even support binary files, so it’s a no-go.
Nevertheless, I’d quite like a comparison between recent, maintained distributed revision control systems (e.g. darcs, arch (?), codeville, monotone, git (?), …).

Leave a Reply

Your email address will not be published. Required fields are marked *