I am a software developer focusing on numerous freelance projects, also, since I am inclined to move about between different machines at different occasions, I need to have located source-control that may be utilized with the internet.

Are you currently in cases like this before, and wondered whether to setup your personal source-control server (for instance, an SVN server on the Linux box), or whether or not to have an account having a located SVN provider for example GitHub or SVNDude?

I recognize that running your personal SVN server involves additional work, for example configuring it and keeping backup copies.

Do you consider this extra effort makes it worth while your money can buy it will save you?

I'd opt for a distributed system on the flashdrive myself. There's some discussion about this here.

I made the decision to choose hosting it by myself source-control server, but in either case perform. Here are a handful of arguments each way (I am sure you've considered many of these, however in the situation you have not, I believed I'd be best enumerating the reason why that mattered in my experience):

Arguments for running your personal SVN server:

  • Cut costs
  • It really isn't difficult to setup your personal SVN server on the machine you have, and you ought to most likely be keeping backup copies anyway
  • You are able to integrate other services on that box that make the most of an area copy from the code (setup a bug-tracker, something similar to trac, etc.)
  • (somewhat associated with the prior point) You've a lot more treatments for the way the source tree can be obtained online (most probably password protected).
  • The safety of the code is no more determined by others.

Arguments against:

  • The safety of the code is no more determined by others. (therefore determined by you)
  • Takes about just a few seconds shorter to setup (presuming you already support the equipment under consideration)
  • (likely) better uptime guarantees
  • Do not have to setup backup copies (although I suggest carrying this out anyway!)

FYI, here's the way you might setup your personal svn server on the machine with ssh running:

svnadmin create /usr/local/svn/repos

(that point on your laptop/work computer, take a look at:)

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

(its that simple! :D )

For Git, as lengthy as you've a server with Git installed and SSH access, you've your personal hosting. There's not really much when it comes to server side setup you must do.

In the Git Book:

You are able to export it as being a bare repo and then scp it on 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 another person by having an ssh account on myserver.com can clone via:

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

Obviously, using GitHub is fairly quick an painless, too, and when you have to share with others, it might be simpler than providing them with SSH use of your server.

Subversion is a little more work to manage a server for, so I'd recommend using a located solution for Subversion unless of course you've got a valid reason to not.

Github is perfect for git hosting. If you would like SVN beanstalk is fairly great for starters and free under 100 Megabytes.

The additional money makes it worth while because you don't only get portability and uptime, additionally you get security (your computer data is safe on the remote host). You are able to afterwards share the code along with other designers should you made the decision to develop out. Alternately, some web hosting companies will even provide SVN inside their hosting package.

If, however, you have a server mounted on a body fat pipe, there is no shame in establishing your personal server either becasue it is quite trivial. But with no body fat pipe it will likely be quite slow to sync large trees or push large changes towards the server.