I am mentoring the programming group of a high school robotics team. I would like to set up a source control repository to avoid the mess of manually copying directories for sharing/backups and merging these by hand. The build location will not usually have network access, so this has led me to distributed version control systems (DVCS), which I am not familiar with.
The largest requirements are the following:
- Works in Windows XP and Vista. (absolute must)
- Changes can be committed locally. (Seems to be the case with all DVCS’s)
- Repositories from multiple machines can be merged without network access. (Possibly by storing the repository on a USB drive and swapping the drive to another machine, then merging from there)
It should also be easy to learn and use, preferably through a graphical UI, as I am working with high school students who have never used a version control system.
Any suggestions as to which DVCS fits this the best.
EDIT:
Thanks for the answers. Mercurial looks pretty good, but does it support merging repositories from one directory to another, or do I have to set up a local network to merge across?
Mercurial is pretty easy to use on both Windows and Linux. TortoiseHg is a gui front end for Windows that integrates into explorer; It works fine. Both are Open Source. It is my understanding that using Git under Windows is less simple.
Mercurial/TortoiseHg will do this (and more), as will all of the other distributed version control tools (as far as I know). I believe it will solve your problem. It is a DVCS and, with TortoiseHg, it is easy to use on Windows. Other distributed version control tools probably will work too (bzr for example), but I have less experience with them. Subversion (svn) is a centeralized version control tool. With some work-arounds you could get it to function in your environment, but it really does not address the issues you want solved. I have no idea why other responders are suggesting it.