I joined GitHub in June of 2012, just to see what the fuss was all about. It wasn’t until today that I had my first pull request accepted and merged, and it was that feeling of having contributed to something that others may find useful that inspired me to write this post. The inspiration doesn’t come from the contributing part. Don’t get me wrong. I’ve contributed and collaborated before. It was, rather, this new social way of controlling and tracking code, changesets, and comments that really make GitHub… cool.
Origins & Centralized Code Control
My origins with source code control stemmed from the days of Microsoft Visual SourceSafe 6.0. Back in those days, you mention a pull request, and people would probably think you are trying to solicit questionable services/acts. I retroactively learned CVS and Subversion because it was open source (read: free), and hence, preferred by my university’s CompSci department. Outside of the world of academia though, it’s been SourceSafe, followed by TFS. These are centrally managed and were the perfect model for the teams I worked in. Check in, check out, the occasional branch/merge… keeping it simple. Now, slightly alter the code contribution model from 10 people to 100, and it becomes close to impossible to manage the above operations when they need to happen in parallel.