Reputation: 81902
I'm about to start a project where programmers will be contributing from their homes (much like stackoverflow was built)
I want to use some centralized source control, but I don't want it to require the programmers to be online, and the server may come offline from time to time (as at first it'll probably be my desktop machine)
I think I remember Jeff talking about this in some podcast, but I don't remember which one.
Is there a source control tool that works perhaps asynchronically by e-mail? Programmers could connect to download the latest version, and the checkin process would be sending files to an email account for example
Does such a thing exist?
EDIT: Sorry, I forgot to say that I'll be working with .NET (Visual Studio 2008)
It'd be great if it could be integrated into this environment... does GIT (suggested below) support that?
Upvotes: 11
Views: 3532
Reputation: 3716
There's also a free SmartSVN tool for Subversion, which integrates with Windows shell (adding fancy icons that let you distinguish locally modified files from pristine etc). I've used Subversion and SmartSVN when working from home as well as in the office, and I can only recommend it. Check its features here.
Upvotes: 0
Reputation: 5231
Subversion is what Jeff was talking about in the podcast. You can buy VisualSVN for Visual Studio integration. svn works very well offline as you don't need to talk to the server unless you are checking stuff in, or getting stuff out.
Upvotes: 3
Reputation: 14513
You're looking for a Distributed Revision Control, system such as Git, Bazaar, or Mercurial.
I personally like Bazaar because it has good windows support.
I think Mercurial may be the best choice in your case, as it seems to have a Visual studio plugin. It does have a web interface and ssh support, which are probably better options than email, but there is also an extension that allows patches via email.
Upvotes: 10
Reputation: 2829
git and mercurial will both do this; they allow syncing via emailed patches. Other distributed source control software will probably also work.
Upvotes: 7
Reputation: 5750
You could use git for this purpose. It doesn't require access to a centralized server, but you can set one up if you want to. Git differentiates between commit and push/pull, so working offline works great. The git website has great documentation.
Upvotes: 7
Reputation: 308031
git
is basically built with this scenario as one of the major requirements.
Others support it as well, they usually go under the name of "distributed version control system".
Upvotes: 18