Question

I have been running my own home-based server for ages for my own personal code, and have tried one system or another (SVN, VSS, etc). But recently, I've enjoyed having some more precious (no source code) data off-site, without having to constantly worry about backups in case of hardware failure, using services like Dropbox, Skydrive, Google apps, etc.

This has made me want to do the same with my source code for various projects, however, I have a few worries about them. Namely, how secure is my code from curious/prying eyes, and do I need to possibly have a fail-safe service, in case one goes belly up overnight, or simply has massive data issues? This wasn't actually a concern until I read someone's experiences with Mozy.com, which while not a code repository service, data storage is data storage.

If you do use/recommend such a service, which would you recommend? I'm open to using any system, be it Mercurial, SVN, GIT, TFS, etc, so long as it has a Windows and a Mac client option (web-based would be a very nice "bonus"). And most importantly, why?

Was it helpful?

Solution

The advantage of a distributed system (Git, Mercurial, Bazaar) is that even if your remote host does disappear completely, you'll still have the full repository history locally, from which you can start again elsewhere. With something like Subversion, if you lose the server you'll only have the working copy, which is better than nothing but means you've lost the project history.

I use GitHub for open source projects and I'm very happy with it. I don't use GitHub for commercial projects as their pricing gets expensive quickly for the way I use Git (lots of small repositories), so I host my own server using Gitosis.

There are similar alternatives for Mercurial (BitBucket) and Bazaar (Launchpad).

OTHER TIPS

As to your first question, this comes down to how much you think you need to protect your code, If the online service goes belly up you still have local copies. If you go with the newer distributed systems you will have all of the history locally. I personally have a cheap account at wush.net for collaboration purposes, everything else is "just" backed up locally here.

As for your second question, go for the one with the best client out there, I have been tempted to switch to git (from svn) but tortoise svn for windows works so well it does not seem to be worth the effort. Use the one that will impose the least overhead to the way you work. Be it because it is integrated in the IDE that you are using or the one that you are most comfortable with.

There are cheap commercial sites out there for most version control systems, and I am assuming you actually want to program and not fiddle with vcs systems, so pick the one that you think will make to do the least work.

Again I personally still prefer SVN, mostly because of Tortoise (Windows Desktop) and Ankh (Visual Studio Integration), on the mac XCode 3 can do SVN, and there are a couple of decent clients available.

Licensed under: CC-BY-SA with attribution
scroll top