I recently changed my repositories from an SVN system, where my repositories were housed on a server which was regularily being used as a workstation by my brother, to GitHub. There was some pro’s and con’s that I considered in making the decision to switch which made me hesitant at first, but now that I’ve got a week’s worth of experience with my new Github setup, I am really happy with it. The following list breaks down some of the points that I considered when I decided to switch from SVN to Github.
Repository Redundancy / Security
Since the SVN repositories were stored on just a single computer (which was put to work very often), a hardware failure of that computer would have been devastating. All of my repositories would have been lost and I wouldn’t be sure how update-to-date my local copies of the repositories were (I have several dozen shared repositories, most of which I don’t update locally regularily). With GitHub, I can be assured that my files will be safe and redundantly backed up in the cloud.
Hosting the SVN repositories were free of charge, since they were on a local computer, but I ran into many difficulties in setting up repositories on the Windows platform that I use. I would not recommend using SVN on Windows because of the countless headaches that occurred from attempting such a feat. Using SVN on a Linux machine is much simpler than using it on a Windows machine. Using Github, however, has a charge of roughly $1.5 per private repository. If you are developing proprietary code and will make a financial benefit from it, then the ROI is definately worth it. On Github, open-source code can be hosted on public repositories for free of charge.
Ease of Use
TortoiseSVN was specifically designed for Windows so it takes advantage of using Windows features, like hooking into the explorer options to allow for quick commits and updates on repositories. The Github client is not as developer-friendly, requiring the developer to launch the Github client, navigate to the specific repository and then perform a commit & synch.
Both TortoiseSVN and Github client are compatible on Windows, withTortoiseSVN creating a friendlier user experience and Github creating a more organized and less cluttered experience.
The overall workflow improvement caused by Github is quite substantial. Reversing commits, examining commit logs and individual files through the browser (which can be editted in real-time) are all features supported by Github which are improved from SVN.