For several years now, I’ve been using SVN to serve as a versioning system, and also for backup.
There are several folders on my hard drive which contain script and code which I would be rather upset if I lost. One of the ways I keep this code backed up is by linking it to a SVN hosted on my webserver. I figure the chances of my webserver and my PC both being erased at the same time is rather small. The advantages of using SVN make the platform beyond useful with tools such as diff for comparing two different versions of a script, or being able to revert to previous versions of code.
In the past I’ve also used SVN for collaboration with other people. It prevents all sorts of issues, and helps to keep our code in sync. There is really very little downside. One recent Skype conversation about interview questions highlighted that I didn’t however know much about CLI SVN or other applications. The primary reason being that I’ve never used anything other than Tortoise SVN. Personally I’ve had no issues with Tortoise SVN so I have had no reason to look at anything else. The interview questions asked about the process to do certain SVN operations from CLI and also basic questions about understanding the output of a common SVN display tool.
These questions made me think. Are there any better tools available for the job, and what tools do I need to be aware of. Now there are plenty of extra applications out there at tie in to version control systems, in fact there are tools which will do basic project management tasks or even do code builds and test them against test cases. There is also the question of which version control system. SVN while being a strong contender is not the only shiny project, in fact GIT is being lauded as a replacement, and almost always attached to it is Github (although it seems somewhat ironic that git is supposed to decentralise storage yet has produced the largest code storage website thus far).
Over the next few weeks I’m going to make a point to look into these technologies again and see what’s worth using. Anyone with suggestions or time to explain such tools to me, catch me on IRC or Skype.
Edit: Going with Git.
Edit2: Git is awesome, Github is awesome, Gitlabs is awesome.