Hacker News new | past | comments | ask | show | jobs | submit login
GitHub is the Best Thing Ever (ericharrison.info)
122 points by blister on May 29, 2010 | hide | past | favorite | 39 comments



We should make a Tiny Fork Day.

A day where X people fork, make at least one contribution, and request a pull.

Set up a cool site targetting people who are interested in coding, but haven't yet gotten the courage to contribute, and you could have something.


It's almost like a flash mob.

I like it.


HN needs to scale up the voting arrows for mobile. That was supposed to be an upvote.


No worries. I've done that a few times. Now I manually zoom almost every time...


Yes, GitHub is wonderful. It makes contributions so trivial that it's worth to pull even the littlest of the modifications. For instance: http://github.com/antirez/redis/commit/ca3f830b32a0a8303a5a7...

Instead I think that an impressive amount of energy and work is often wasted because many developers will design & code an important patch before getting in touch with the author of some project. So the author will see a patch that probably makes totally sense but is not what was desirable for some reason (future directions, too bloat, there is a better way to do that).

If it's the kind of project where you can join some IRC channel or drop an email to some mailing list and get in touch with one of the developers, it's really a good idea before starting to code.


For trivial changes as describe in the article? I tend to disagree. Decentralization saves you this administrative issues, like getting in touch with people in advance, before they can see if you are really interested by actually coding. I think it shows your value of this community if you are contributing in the small at first if it is a larger project.


I wrote "... will design & code an important patch ...". For important patches this is required, not for small changes.


Hm, I am sorry, but have to be picky about language: changes can be important but trivial.

What I really meant: If this patch is easy and fast to produce, don't contact the developer. Even if it is an important change.


After reading this article I went ahead and forked the Konami-Unicorn-Blitz project (the same one this article references). Added a hideAfter property that autohides the unicorns after 30 seconds and submitted a pull request. We'll see if the change is accepted :)

GitHub is neat.


I accepted your patch... ;) John had already given me contributor access so I went ahead and followed his lead. GitHub is excellent.


You do not need github to do that. You just need git and any git hosting. Forking is just a clone, you push in your hosting (whatever it is) and ask the guy on the other end to pull. No centralized control, real distributed development.

Linux is developed like that every day. My own forge software http://indefero.net is also developed like that, with forks on github, on other instances of Indefero or just on 'hand rolled git hosting'.

So, the title should really be "Git (or any good distributed SCM) is the best thing ever".


Yes, but git itself does not provide the discoverability, one click forking, or pull requests that makes this workflow so easy and fun.


True, you don't need github. But it's killer feature is that provides the initial grease on the rails so that Joe Blow can come along to quickly and easily add a feature or fix a bug. As someone who just this week made some doc contributions to 2 different projects on GH, I can tell you the feeling is addictive.

That's why Github is cool.


It is totally true (as I said, I am using github too), but take it as a reminder that git itself provides all the machinery to allow you to fork, share with pull request etc. independently of any provider. You do not need a forge hosting like Indefero or Github or you name it, to use it.

What I really like for example, is that I can pull a project from anywhere, be stuck on a local network with other developers, work on the code with branch/commit/pull in all the directions and then later, push back the results without the fear of losing something in the merge.

Git is great and more of it cannot hurt.


Think of Github as a discoverable user interface for git. It has visible affordances. Github is to Git as OS X is to Unix.


Actually I think GitX (note: you want the Brotherbard fork of it) is that. I haven't learned much about Git from using Github, but GitX is great for that.


> It's the OS X of Unixes.

Sorry, but I think you mean that OS X is the OS X of Unixes, and GitHub is the OS X of DVCSs.


See how a web-based discoverable text editor makes collaborative editing easy? :-)

Thanks!!!


Funny, I put together a script just yesterday that allows you to do pull requests from the command line (via git): http://gist.github.com/415266

Improvements always welcomed :)


As an aside, I was writing some Ruby code last night and realized that mojombo has written a ton of really awesome gems.


Thanks! I'm glad you like them!


It's true, these small patches make me smile the most.

I had a contributor to a project of mine that basically just formatted the README file. I certainly appreciated it.

It's nice knowing you're not coding in a vacuum.


The only thing I don't understand about github is that "hardcore archiving in process..". I mean why do I have to wait a minute before I can start downloading the archive? Isn't it costly if the server has to create an archive every time someone requests a download?


Archives are generated when they are requested and cached for fifteen minutes. This cache length results in an average of 3.5GB of cached archives on disk at any given time. We have to serve a large number of archives for arbitrary revisions, so making you wait a few seconds for a tarball is currently the best tradeoff. It's possible that in the future we will increase the cache TTL (and the size of the cache) so that you are more likely to hit an already generated archive.


That explains it. Thanks! (and I won't complain anymore :p)


It's because the server has to create a tarball on demand, which can take a while.

So, instead of having your web request unresponsive for a minute while it's processing, they queue up a background task on the server and give you a "hardcore archiving in process.." response immediately.

Then I imagine they do some ajax polling to check when the background task has finished and the archive is ready.

It's a really good technique if you want your web app to be responsive. We do it at work for basically anything that will take more than a second.


The result is probably cached, but for a HEAD you more than likely won't have more than one or two requests for a tarball.


What do you think happens most, pushing changes or downloading a tarball?


The GitHub homepage had support for the Konami code with the commercial launch, IIRC:

http://github.com/site


Or BitBucket if you're a Hg-person.


Actually Github seems to have a much better marketing compared to BitBucket. I would also imagine they are also quite larger.

I'm a Hg-person, but I was just thinking I could move my repositories from my dedicated server to Github (via some git-hg plugin they wrote).


Github was also first, I believe. I think many git-persons find there are other services better than Github (in some areas they're interested in if not all of them), but the brain/market share of Github makes it basically a requirement.


I've looked and the only other feature I've seen that may perhaps rival Github is Joel's code review flow.

Would you mind mentioning specific features (other than ones that are part of another dvcs) that you are referring to?


I was just marveling how someone fixed doc typos shortly after we published http://github.com/stevedekorte/vertex.js


It's exactly the same reason why I love GitHub. Got this moment when I forked three20 when it first published on github, and contributed a little patch to it for http auth.


I'm sometime tempted to do a s/GitHub/gitorious/g

Especially that the gitorious.org software is free :

http://gitorious.org/gitorious


BitBucket is the Best Thing Ever too!


Yeah. I like BitBucket as well. I'm just more of a Git guy right now, and all of my favorite projects and people are on GitHub.

It's got a social-network lock-in effect for me right now. I can't leave and go somewhere that has none of my friends. But boy, I love BitBucket's pricing. I wish I could get at least 1 private repo on GitHub without paying a monthly fee. It'd be nice to have a personal repo to store configuration files and such that contain passwords... :(

Oh well.


sweet easter egg!




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: