Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best version control system for a non-networked environment?

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:

  1. Works in Windows XP and Vista. (absolute must)
  2. Changes can be committed locally. (Seems to be the case with all DVCS's)
  3. 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?

like image 917
Josh Avatar asked Oct 17 '08 16:10

Josh


2 Answers

Git is lovely, but its Windows support is lax in the extreme (even with MSysGit). I would recommend Mercurial. I haven't actually used it myself, but I have heard that its Windows support is quite usable. Also, it has a slightly easier learning curve for people coming from traditional VCS (like SVN).

like image 136
Daniel Spiewak Avatar answered Oct 02 '22 14:10

Daniel Spiewak


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.

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/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.

like image 29
ejgottl Avatar answered Oct 02 '22 14:10

ejgottl