tags:

views:

507

answers:

10

I'm a software developer working on a number of freelance projects, and because I tend to move around between different machines at different times, I have a need for hosted source-control that can be accessed through the net.

Have you been in this situation before, and wondered whether to set up your own source-control server (for example, an SVN server on a Linux box), or whether to get an account with a hosted SVN provider such as GitHub or SVNDude?

I realize that running your own SVN server involves some extra work, such as setting it up and keeping backups.

Do you think this extra effort is worth it for the money you save?

+1  A: 

Github is for git hosting. If you want SVN beanstalk is pretty good for starters and free under 100 MB.

The extra money is worth it because not only do you get portability and uptime, you also get security (your data is secure on a remote host). You can later on share the code with other developers if you decided to grow out. Alternately, some web hosts will also provide SVN within their hosting package.

If, however, you do have a server attached to a fat pipe, there's no shame in setting up your own server either since it's quite trivial. But without a fat pipe it's going to be quite slow to sync big trees or push big changes to the server.

aleemb
+3  A: 

I'd go with a distributed system on a flashdrive myself. There's some discussion about it here.

Arnold Spence
+2  A: 

I decided to go with hosting it on my own source-control server, but either way could work. Here are a couple of arguments each way (I'm sure you've thought of most of these, but in the case you haven't, I figured I would be better off enumerating the reasons that mattered to me):

Arguments for running your own SVN server:

  • Save money
  • It really is not difficult to set up your own SVN server on a machine you own, and you should probably be keeping backups anyway
  • You can integrate other services on that box that take advantage of a local copy of the code (set up a bug-tracker, something like trac, etc.)
  • (somewhat related to the previous point) You have a great deal more control over how the source tree is available online (presumably password protected).
  • The security of your code is no longer dependent on others.

Arguments against:

  • The security of your code is no longer dependent on others. (therefore dependent on you)
  • Takes about 15 seconds shorter to set up (assuming you already back up the machine in question)
  • (likely) better uptime guarantees
  • Don't have to set up backups (although I recommend doing this anyway!)

FYI, here's how you might set up your own svn server on a machine with ssh running:

svnadmin create /usr/local/svn/repos

(then on your laptop/work computer, check it out at:)

svn co svn+ssh://myremotelinuxbox.address.com/usr/local/svn/repos

(its that easy! :D )

Elliot Kroo
+2  A: 

For Git, as long as you have a server with Git installed and SSH access, you have your own hosting. There's really not much in the way of server side setup you need to do.

From the Git Book:

You can export it as a bare repo and then scp it onto your server like so:

$ git clone --bare /home/user/myrepo/.git /tmp/myrepo.git
$ scp -r /tmp/myrepo.git myserver.com:/opt/git/myrepo.git

Then someone else with an ssh account on myserver.com can clone via:

$ git clone myserver.com:/opt/git/myrepo.git

Of course, using GitHub is pretty quick an painless, too, and if you need to share with other people, it may be easier than giving them SSH access to your server.

Subversion is a bit more work to administer a server for, so I'd recommend going with a hosted solution for Subversion unless you have a good reason not to.

Brian Campbell
A: 

I am the (de facto) admin of the SVN server at work. It isn't a staggering amount of work to setup and maintain, but it's still work, and in my case I don't even have to be too stressed about security because it's installed in a LAN. I would certainly pay a few dozens of dollars a year to be alleviated from that.

Remember that a remotely hosted SVN also gives you a remote backup against disasters.

For my personal projects I use SVN hosting at XP-Dev.com and I am very happy with them. It's free up to 500MB and without SSL and automatic backup.

Daphna Shezaf
+1  A: 

Running your own SCM system is not really worth it unless you are doing it for the educational value. Otherwise it is better to just use an available one and save your time for actual developmental work. SCM is more than just about copying your code onto another system.

sybreon
A: 

I would say it's not worth it. I've used the free version of Assembla and found it fairly smooth (I'm not affiliated with them), and the pay version seems affordable. There are also many other good hosted choices.

Matthew Flaschen
+1  A: 

You may save money, but you certainly wont save any time, and when it goes wrong it's your problem to make it work. Seriously is ~$20/month too much to pay, compared to doing it all yourself.

MrTelly
A: 

Here is a (somewhat out of date) source for comparing hosting providers.

http://www.svnhostingcomparison.com/

A: 

I have just started using CodeSpaces, free account gives secure access, 500mb account and 2 user accounts. Can't comment on it for long term or large scale projects but seems good so far.

benPearce