11

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?

Jonas
  • 121,568
  • 97
  • 310
  • 388
juan
  • 80,295
  • 52
  • 162
  • 195
  • email is not a good way to move large files around. If nothing else, there's too many places that are likely to limit transmission size or strip out attachments. Use something better suited for this. – David Thornley Aug 16 '10 at 20:59

7 Answers7

18

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
  • 302,674
  • 57
  • 556
  • 614
  • Agreed. I personally prefer Bazaar (http://bazaar-vcs.org/), but whichever you choose, it sounds like distributed version control is what you need. – jalf Dec 15 '08 at 18:23
10

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
  • 14,201
  • 3
  • 42
  • 77
  • Hmm, hadn't seen that... There goes one more difference... looks like they're all nearly identical at this point... – chills42 Dec 15 '08 at 17:29
  • What about something that could be integrated in visual studio? – juan Dec 15 '08 at 17:31
  • I think mercurial might be the only one with VS support... and I think that was a third party plugin – chills42 Dec 15 '08 at 17:38
  • 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 Dec 15 '08 at 18:29
  • Git and mercurial both have good windows support now, so most of the distinctions have gone away between the 3. – chills42 Aug 19 '11 at 15:08
7

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

ejgottl
  • 2,809
  • 19
  • 18
7

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
  • 5,600
  • 2
  • 32
  • 33
3

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
  • 5,229
  • 4
  • 36
  • 50
  • Also look at AnkhSVN - Free for Visual Studio! – sgwill Dec 15 '08 at 17:57
  • 2
    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 Dec 15 '08 at 18:20
  • 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 Dec 15 '08 at 19:05
  • 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 Dec 15 '08 at 19:23
1

Sourcegear vault has an add on that allows this

Jayden
  • 2,656
  • 2
  • 26
  • 31
0

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.

Vadim Kotov
  • 8,084
  • 8
  • 48
  • 62
Abgan
  • 3,696
  • 22
  • 31