Hacker News new | past | comments | ask | show | jobs | submit login
Linus's first version README for git (kernel.org)
169 points by mapleoin on Nov 25, 2011 | hide | past | web | favorite | 16 comments

Probably inspired by my comment earlier [1] about how Linus comitted the first version of git in git [2].

I find it fascinating that systems can be bootstrapped upon their own foundations.

[1] - http://news.ycombinator.com/item?id=3277079

[2] - http://git.kernel.org/?p=git/git.git;a=commit;h=e83c5163316f...

I guess the canonical example is using a compiler to compile its next version. Ken Thompson famously used this bootstrapping property to insert a trojan horse into the C compiler [1]. It propagated itself into future binary versions of the compiler, without actually appearing in their source code.

[1] http://cm.bell-labs.com/who/ken/trust.html

Ken explained it was possible to write such a trojan but he never did it.

One of the coolest cases of this I've seen recently is the second half of Kent Beck's "Test Driven Development: By Example". He uses builds a TDD framework with TDD, using the TDD framework he's building.

funnily, I was revisiting the TDD sudoku incident recently... ;)

I have a question, why did git grow so popular? What was better about it?

Edit: To down voters I think this question is important because it helps us understand why certain softwares are successful despite other successful competitors. I am not trying to start a flame war on which version control system is better.

This is an interesting question. I'd say it's a mix of technical and social factors. Technically it's a solid abstraction (versioned directories), it's ridiculously fast (specially when compared to most alternatives at the time, even local ones), and somewhat space efficient (if you're not keeping binaries around). Because the format has been specified from the beginning it's easy to build all sorts of tools on top of it and add as much knowledge as you want, including line-by-line diffs, rename tracking, etc. It also ignores some hard problems people were focusing on at the time (merges, for example).

Socially, it first had a big userbase because the kernel is a large enough project and the switch was made top-down as far as I remember (not everybody was forced to do it but it was much easier if you could). This means a lot of people had to get acquainted with it, and this set of people turned out to be somewhat competent at changing it to make it faster, more stable, and easier to use (up to a point). Linus's personality played an important role here, as he entertainingly made a case for why it was good, which created a certain "cool factor". Second, there was the github factor which allowed this user base to explode exponentially by making it really cheap and easy to use.

Some ideas:

1. By being "stupid", git doesn't treat the user as stupid.

2. git allows repositories to be uploaded or transferred anywhere for others to use with a single, simple command.

3. git is efficient and fast. No one likes waiting for their computer to do a seemingly easy task -- especially software developers/hackers who know something should be O(1) complexity and could be written in X lines of code.

4. Merging/branching is easy.

I have a question, why did git grow so popular?

1. Celebrity nerd Torvalds creates a vcs. It is not terrible.

2. Linux development moves to git.

3. Rails development moves to git.

4. Github.

People are probably downvoting you because it's totally off-topic, in addition to be a really well-worn question. This is something you can easily Google and get hundreds of answers for.

That said, the answer IMO seems to have something to do with the fact that some very important communities ready for a different VCS model, and some very good and influential developers answered that call at roughly the right time. For example, both Mercurial and Git were started in direct response to the Linux Kernel having their bitkeeper license revoked.

Github is really a killer app for git, and that's probably one reason it's gotten as popular as it has.

I think it is a legitimate question.

I picked up git because I know I needed to use SOMETHING for version control. Looking around a few years back I saw CVS, SVN, and the rest.

So I Google/ask around. I see that git is getting mentioned pretty regularly. I also see Hg being mentioned. I basically search for free hosting for both. Github just seemed more friendly. The UI was bigger and easier to read than bitbucket. So I just went with git.

Often it is the stupid reasons that people adopt something: it looks nicer, my friends are using it, I can pronounce the name.

GitHub may be one reason.

Maybe less but still important IMHO is that it's far more pronounceable than e.g. SVN. That could help build the hype.

I remember when I was first introduced to version control - I was told "we're using 'subversion' for XYZ". I thought that meant we were doing something sneaky that I shouldn't talk about.

"Git" is definitely a nice name.

I have no idea where urbandictionary.com is from, but its page on `git' describes the meanings it's always had for me, and indeed probably most UK (and Australian?) readers:


This is partly why I have, so far, not joined the "Git Hub".

All in all, I think a better name could have been chosen. But, most of the time, I only type it - and it IS certainly nicer to type than `svn', I'll give it that.

That's pretty close to a minimal viable format Particularly key to the success is the clear invitation to build obvious tools and extensions without relying on magic limitations. There's no version number embedded in the format, but it's easy to flag tags your tool doesn't understand.

And this is why I have a deep respect and admiration for Mr. Torvalds

Registration is open for Startup School 2019. Classes start July 22nd.

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