I need to get in a quick plug for GitHub. This is my kind of social software. You want to “friend me”? Send me a patch.
Fork me.
I’ve been wanting to dig into git for some time but I kept putting it off. Alex hooked me up with a GitHub invite last week so I took it as an opportunity to dive in and start migrating my smallish Bazaar branches over to git repos.
First, the tree browsing interface is beautiful and functional: syntax highlighting, link to line number in source file, plain text URLs, etc. I also love how they dump out the README* file for whatever directory you’re in with link detection. It’s a small touch but something I always loved in httpd’s mod_autoindex.
The history browsing and diff views are also nicely done. There isn’t a side-by-side view but I’ve become so accustomed to reading unified diff that I haven’t really missed it.
Where things get really crazy is when you get into the collaboration aspects. You can “fork” any project at any time to create a clone of someone else’s repo. The idea of cloning isn’t all that interesting — its basically at the foundation of git and you don’t need a GitHub account to do it — but what GitHub adds is visible linkage that shows the clone took place. The project owner is notified that his repo has been cloned and can see the forked project on his Network page and the person doing the forking has the clone on their project page.
Forking on GitHub is like friending on Myspace (or Facebook or whatever crazy ass social networking site that is) inasmuch as this is the point where a line is drawn from one node to another in the social graph.
Once you’ve forked a project and made some changes, you can then send someone (usually the person you forked from) a pull request, asking that they grab your changes and integrate them into their upstream branch. Again, “pull requests” happen every day over email without GitHub but, by sucking those interactions into a web application and recording certain bits and pieces as they transact, GitHub is able to 1.) guide git newbies in using fairly advanced concepts, and 2.) record that the interactions took place, which makes it possible to build entirely new types of tools.
The last thing I wanted to mention is that the folks at GitHub have done a terrific job at keeping things simple. Git is a conceptual beast with tremendous depth. It would be easy to wander down a few dark alleys and make these interfaces really “advanced” and “sophisticated” (see: launchpad.net) but they’ve somehow abstained. Let’s hope it stays that way.
Oh, I almost forgot… Who wants an invite?
UPDATE: Sorry, folks. Those invites went quick. I’m all out.
Comments
Here Here. GitHub rocks my world!
— Simon Harris on Tuesday, February 26, 2008 at 01:03 PM #
I would accept an invite – steven.romej at gmail. Great post btw
— Steven Romej on Tuesday, February 26, 2008 at 04:42 PM #
nice overview.
I can has invite plz :)
— Pradeep on Tuesday, February 26, 2008 at 04:51 PM #
Yay github!
— yesmar on Tuesday, February 26, 2008 at 05:53 PM #
Looks super cool. Invite please! joshua@reverberate.org
— Joshua Haberman on Tuesday, February 26, 2008 at 05:54 PM #
Sounds cool, I’d like an invite
cstejerean [at] gmail
— Cosmin Stejerean on Tuesday, February 26, 2008 at 05:59 PM #
I’d love an invite: andrei.shindyapin at gmail…
— Andrew S. on Tuesday, February 26, 2008 at 06:04 PM #
Looks like what I’ve been looking for – creinman A gmail if you could.
— Charles R, on Tuesday, February 26, 2008 at 06:12 PM #
Mm, most excellent. jdknezek at gmail? Most appreciated.
— jdknezek on Tuesday, February 26, 2008 at 06:20 PM #
Looks cool: gates.plusplus@gmail.com Thanks!
— Sharma on Tuesday, February 26, 2008 at 06:40 PM #
I would love to try this out.
— Paul Tötterman on Tuesday, February 26, 2008 at 06:43 PM #
Very cool; just starting using git to push changes to the Arc “wiki.” I signed up for the GitHub beta, but don’t know what kind of response time they have… An invite would be awesome: max_maxwellterry.com
— Maxwell Terry on Tuesday, February 26, 2008 at 06:49 PM #
Invite please! That would be awesome. Signed up for one 2 weeks ago, but havn’t had anything yet.
Simon (bloodearnest@gmail.com)
— Simon Davy on Tuesday, February 26, 2008 at 06:55 PM #
Yeah, we really need something like this for Mercurial…
— Manuzhai on Tuesday, February 26, 2008 at 07:08 PM #
Thanks Ryan, your a star :)
— Simon Davy on Tuesday, February 26, 2008 at 07:40 PM #
I’ll name my next dog after you if you send an invite my way. (s.clay.smith at gmail.com)
— Clay Smith on Tuesday, February 26, 2008 at 08:12 PM #
What about http://gitorious.org which is the same as github without the invitation part.
Sure the interface is not similar, but you can fork gitorious project from http://gitorious.org/projects/gitorious and show your design skills :)
— Alex on Tuesday, February 26, 2008 at 09:39 PM #
GitHub is fantastic – I’ve been in for about a week, and I’m loving it so far. One social aspect of it you didn’t mention, though, was the ability to follow other users, which adds their activity to the feed on your account homepage.
— Ben on Tuesday, February 26, 2008 at 10:07 PM #
Alex: I played with Gitorious briefly a few weeks ago but didn’t realize how much it had in common with GitHub for some reason. Did a bunch of features land recently or something? It looked like it was pretty much git repo hosting + a project info page. And tags. The link you left to the gitorious project gives a much better demonstration of features than what I experienced since there’s a bunch of clones and active users on that project.
Also, the about page does a really good job of describing the aspects of these apps that I find most intriguing:
The *forge era is over. This is going to get interesting.
I might do that, actually. I won’t be hacking on the design (it looks good to me!) but I have some ideas on how content negotiation should be implemented and some others on exposing trees, branches, and diffs via a clean and consistent URL space.
Maybe I’ll take a crack at pull requests.
— Ryan Tomayko on Tuesday, February 26, 2008 at 10:22 PM #
sounds so tempting, I just want to try it. I was crying around 5 minutes ago for the poor integration of git/trac. If you can, please send my an invite for dev_eddie at yahoo
— eddie on Tuesday, February 26, 2008 at 11:25 PM #
If anybody on this list has an invite, I’d like one.
— Issac Kelly on Wednesday, February 27, 2008 at 12:26 AM #
Ooh, yes please!
— Keith Gaughan on Wednesday, February 27, 2008 at 01:06 AM #
If you have any invites left, I would love one.
dave@davemerwin.com
Dave
— Dave Merwin on Wednesday, February 27, 2008 at 04:44 AM #
Great blog post! One of the most awesome things about GitHub is the public news feed.
— Chris on Wednesday, February 27, 2008 at 08:04 AM #
How about only sending invites to people who intend to make contributions to your projects? That sounds like a better plan. =)
(If anyone wants to help out with Bus Scheme or Augment, I’d be happy to send an invite their way. technomancy at google’s mail service.)
— Phil on Thursday, February 28, 2008 at 04:45 AM #
You’ve been able to create clones/forks for any project since day 0. It says a lot about the dscm workflow that both github and I got roughly the same idea and launched each others things a few days apart. I am however fully convinced that OSS projects needs something to center around (the “project”) in order to form a good community around itself, that’s the main reason Gitorious doesn’t take the semi-fractured approach Github seems to take, but rather centers the clones around the same goal. Of course, part of that is realising that one size doesn’t fit all, and thanks to the distributed nature of git there’s plenty of room to do things in whatever way you like.
Can’t wait! ;)
I’ve been having something like that (I’m guessing, haven’t used Github, my inspiration is git-request-pull) cooking in my local repos for a weeks time, I need to wrap that up
— Johan S on Thursday, February 28, 2008 at 07:43 AM #
One more please: vladimir@uberVU.com
— Vladimir on Thursday, April 10, 2008 at 08:03 PM #
GitHub doesn’t require invites, does it? — you can just sign up for the free (no-cost) “Open Source” plan. :)
P.S. I’ll add to the chorus: Git rocks, and Github makes it rock even more!
— John Croisant on Tuesday, September 23, 2008 at 08:49 AM #
D'oh, ignore me. This came up in my RSS reader and I neglected to notice that the article was from February!
— John Croisant on Tuesday, September 23, 2008 at 08:56 AM #