views:

386

answers:

8

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?

+6  A: 

git and mercurial will both do this; they allow syncing via emailed patches. Other distributed source control software will probably also work.

ejgottl
+16  A: 

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

Joachim Sauer
Agreed. I personally prefer Bazaar (http://bazaar-vcs.org/), but whichever you choose, it sounds like distributed version control is what you need.
jalf
+6  A: 

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.

Egil
+1  A: 

Sourcegear vault has an add on that allows this

Jayden
+9  A: 

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.

chills42
Git has good Windows support as well. See http://code.google.com/p/msysgit/
Egil
Hmm, hadn't seen that... There goes one more difference... looks like they're all nearly identical at this point...
chills42
What about something that could be integrated in visual studio?
Juan Manuel
I think mercurial might be the only one with VS support... and I think that was a third party plugin
chills42
Bazaar has support for patches via email, but I'd use SFTP or similar.How up to date is msysgit? How mature? I'm usually skeptical of Windows ports that require Cygwin (not because of any problems with cygwin, but because Windows is generally not a priority among products that rely on it)
jalf
+2  A: 

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.

Darryl Braaten
Also look at AnkhSVN - Free for Visual Studio!
sgwill
Excellent, thanks
Juan Manuel
The problem with SVN compared with real distributed version control systems is that you can't do local commits, compares, branches, merges. DVCS support all (or most) of those operations without access to a central repository.
Joachim Sauer
I love Git and saua is right about DVCS giving you more offline possibiliities. But for now, you'll get more utility from the integration of VisualSVN or AnkhSVN for working with Visual Studio.
Paul
Developers can always run local svn repositories and sync up the the server every so often to get most of the benefits of git. I did this on one project were VSS was the master source control system. We used SVN locally and synced to VSS on a daily basis.
Darryl Braaten
A: 

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

Abgan
A: 

My advice is trying Bazaar or Mercurial. Git needs Cygwin for running on Windows, so it doesn't seem natural to me for your environment. A friend of mine recommended me Mercurial, which is available for Win, Mac, Linux. Bazaar is being promoted heavily now. It is simple to use and it allows you to have a centralized or a distributed repository. The deal-breaker will be the Windows integration tools you can find, and I think Mercurial is the winner of these two ones.

Suerte!

Angel