I want a proper version control system.
Options I’m aware of are: CVS, Subversion, Arch, Monotone, Vesta, OpenCM, Perforce, BitKeeper and darcs.
As usual, I have some requirements which I would like to think are the bare minimum any system should support:
- It must handle direct renaming of files. That eliminates CVS and Perforce.
- It must support copying files while retaining their history. That eliminates Aegis and OpenCM.
- It must handle filenames with spaces in. That eliminates Arch.
- It must let me check out part of a repository, not just the whole lot. That eliminates Monotone.
- It has to work without needing specific kernel versions or other hacks. That eliminates Vesta (which needs NFS and a 2.4 Linux kernel).
So, that leaves me with darcs or Subversion. I don’t like the fact that Subversion stores its data in DB files, but I also don’t like the fact that darcs is written in a language very few people know, is more or less a prototype, and is basically only being worked on by one person. It may also fail some of the above requirements, I don’t know.
Anyone know of any other options?
The frustrating thing is that Arch does almost everything right, except for being utterly broken in its filename handling and mandatory naming conventions.