When I first started working at PMG, back almost a year ago, I had asked what type of version control system PMG used, and since most of the programming PMG had done was iPhone development, and Xcode had built in subversion, so SVN was the answer. However, as PMG grew, the number of non-iPhone projects we had also grew, and the reasons to use SVN diminished. This last February, I had a discussion with George and Chris and we decided to move from SVN to Git, and more specifically, we decided to purchase a team account on Github, which can be found here. It has been roughly 3 months since we started using Github, and I have to say, using Git and Github as our version control system is pretty stellar. Here are some of our favorite features.
Chris D: The Social Aspect of Github
When it comes to keeping up with what the rest of the PMG staff is doing, SVN made us go out of our way to view changes. It was hard to compare exactly all the changes that were made other than what the commit description said. That was not an issue anymore with the Github News Feed and Github Online Code Viewer.
It also makes it easy for project managers to see when code is being completed. They see the commits, and can drill down to see what code was changed, all from the Github website, without downloading a single file. This helps teams collaborating on a project keep track of what changes were made, and which changes where published, and when.
Chris A: The Github Mac OS X Application
I am not going to lie, I am not like most hard-core programmers, I love to use the mouse over the keyboard. While I do use the most standard shortcuts like
ctrl+s to save and
ctrl+[x/c/v] to cut, copy and paste, I love using the Magic Mouse’ gestures to do the rest. I probably have about 12 different gestures and actions on the mouse, from the one finger swipe to the 4 finger button click, I use it all. I also love using GUIs instead of the command line, so when I found that Github had a Mac OS X application, I was very pleased. Not only did it keep track of what changes you made, but you only had to click one button to commit and sync with Github. Making commits was super easy, and I did it all the time, unlike with SVN. With SVN, I felt like I had to stop what I was doing and commit, whereas with the Github app, it becomes part of my process for coding a feature into my project.