GitHub is pretty awesome
June 4th, 2008
Here are some of the things the GitHub team totally nailed:
- Projects do not get a homepage. At SourceForge and its clones, you get this lame default page that you have to maintain, even if you don’t want it. At this point in history, I think we can assume that projects will already have a homepage, no matter how small.
- Bi-directional connections between parent projects and forks. This lowers the barrier to entry for a typical open source patch tenfold. A simple idea that seems obvious in retrospect.
- Having user URLs so close to the toplevel makes it trivial to remember the path to a particular project without searching. Imagine github.com/users/wilson/projects/213?name=foo and give thanks for what we have instead.
- No need to fear github turning ‘evil’ or shutting off all the servers. Every clone of the project is another complete backup, unlike the nightmare of Subversion.
- A ‘forker’ can trivially request an upstream developer’s attention via a pull request.
- Optimized for storing and displaying source code, rather than downloading binaries.
There is a little bit of pain here during the ‘transition period’ as github takes over the open source world; existing projects will have to either enforce a single technique, or start checking two different places for patches. Presumably better Trac / Lighthouse integration with GitHub is forthcoming, however.
I recently had the opportunity to spin off a fork of RSpec in order to work on better Rubinius support; thus far the process has been painless for both me and the RSpec team. Nice work, GitHub.
2 Responses Follows
Sorry, comments are closed for this article.

on June 11th, 2008 at 02:04 PM
Backing up Subversion is not a nightmare, simply a matter of reading the documentation. Fives minutes with svnsync and you have a backup of your repositories. That’s what I do with my projects on SourceForge and Google Code and it’s worked very well (and it’s even automated). In any case, if GitHub were to die overnight, you’d lose your hosting service. DCM or not, your shared repository is gone and you’ll be looking for another provider by the end of the day.
on June 11th, 2008 at 02:21 PM
Well, first off we would chat in IRC and pick somebody’s machine to be the new remote
Then we would decide where we wanted to do that for good.
Having done that same process in SVN, I can say it wasn’t pleasant. I’m sure there is a level of Subversion-fu that I never acquired, though.