7 ms·
Initial revision of "git", the information manager from hell
- ajross 14y agoWhat's most notable about this isn't so much that all the core ideas of git are already in place in the first version. It after all is, fundamentally, a pretty simple piece of software. What shocks me is that that README was written literally days after the kernel project's license to bitkeeper got revoked.
- thaumaturgy 14y agoIsn't it funny to think about how, if Tridge hadn't done what he did, if all of Linus' public shaming of Tridge had done the trick and the Linux kernel had stayed on Bitkeeper, that we wouldn't have had git, or Github? Linus did a good job of coming up with a replacement tool in a hurry, but I'm also grateful to Tridge for poking a stick into the hornets' nest.
- lloeki 14y agoI'd say we would have had Mercurial, but it was apparently developed for similar reasons: > Mackall first announced Mercurial on 19 April 2005. The impetus for this was the announcement earlier that month by Bitmover that they were withdrawing the free version of BitKeeper. [Wikipedia]
- Maro 14y agoI was not familiar with this story and had to look it up. Thanks for the pointer. Seems like the CEO of BitMover shot himself in the leg by being kind of unreasonable and triggering the development of various open source DVCSs, which surely are hurting his bottomline by now. Clickable: http://en.wikipedia.org/wiki/BitKeeper http://en.wikipedia.org/wiki/BitKeeper
- vog 14y agoWe would still have had Darcs [1]. An without its competitors Git and Mercurial, maybe Darcs would have gotten more enthusiasts pushing Darcs to where Git is today. [1] http://darcs.net/ http://darcs.net/
- dspillett 14y agoHas Linus ever said why he disregarded Darcs and the other OSS options (wasn't Mercurial already starting to get somewhere at that time?). Other projects not mature enough yet (and/or moving fast enough in that direction) and he wanted something now? Or some technical points that he disagreed on, so wrote his own solution that worked the way he preferred instead of trying to change the established workings of other projects?
- masklinn 14y ago> wasn't Mercurial already starting to get somewhere at that time? Git and Mercurial were started within days of one another, for the same reason (loss of BitKeeper license for the kernel devs). Mercurial was actually announced 2 week after Git (2005-04-19 vs 2005-04-06)
- regularfry 14y agoAt the time darcs had some serious problems - you could quite reliably get into a "merge of death" situation where the tool would just take ages (hours, days) to do a merge on a relatively small codebase. I don't actually know if that played into his thinking or if he just didn't trust a tool written in a language he wasn't as happy hacking in.
- tytso 14y agoHas Linus ever said why he disregarded Darcs and the other OSS options (wasn't Mercurial already starting to get somewhere at that time?). Here are Linus's comments about Darcs: http://markmail.org/message/vk3gf7ap5auxcxnb http://markmail.org/message/vk3gf7ap5auxcxnb As far as why not Mercurial, Mercurial was announced on April 19th. Git was announced on April 9th, and was self-hosting on April 7th. There were benchmarks comparing git and Mercurial shortly after Mercurial was announced, and git was faster, although at least originally it used much more disk space (this was before git had implemented compression and pack support).
- jeltz 14y ago> Has Linus ever said why he disregarded Darcs and the other OSS options (wasn't Mercurial already starting to get somewhere at that time?). I think you might be thinking of Monotone here. Mercurial was started some days after git. EDIT: Wikipedia has some info about what Linus thought of Monotone. The key problem with it was performance. I have no idea to what degree they have been fixed today. https://en.wikipedia.org/wiki/Monotone_%28software%29#Monotone_as_Git_inspiration https://en.wikipedia.org/wiki/Monotone_%28software%29#Monoto...
- adharmad 14y agoYes. I was subscribed to LKML around the time the Bitkeeper sage was in progress. One thing that I do remember was just how arrogant Larry McVoy was about whether a replacement SCM could be developed and have feature parity with Bitkeeper. He kept on talking about how he/Bitkeeper is at least a decade ahead of the rest of the community and it would be very difficult to come up with an alternative. Thankfully, the open source community proved him wrong!
- voltagex_ 14y agoAny particular threads worth digging up?
- ramses0 14y agoI ran into McVoy on reddit a few years ago. He seemed totally different than the "scary evil public persona" that has been bandied about... http://www.reddit.com/r/programming/comments/9zdlf/git_and_microsoft_development_a_success_story/c0f5h3m?context=3 http://www.reddit.com/r/programming/comments/9zdlf/git_and_m... ...humble, concerned, and proud of how they've advanced the "state of the art" and his company's contributions to modern version control. """Imagine how I'd feel if Linus used BK for years and when moving off he made a centralized VCS."""
- luckydude 14y agoWell, to be fair to the people pushing the "scary evil public persona", I don't come across well in email. Never have. I'm better in person; had a meeting with a guy from Germany a couple of years back who worked up the courage to invite himself to our offices in the south bay and after a couple of beers he made some comment like "wow, you're nothing like what I expected, you're actually a nice guy". I get that a lot. It's a "gift" :)
- ramses0 14y agoGood to see you again! Hopefully business is still going well for you, although I imagine GitHub enterprise is becoming a strong competitor (and noticeably Git is left off the comparisons page?). From what I can tell maybe age and experience have mellowed you out your email tone a bit... pretty soon you'll turn into Ned from The Simpsons. ;-)
- akent 14y agoActually this is just the first self-hosted revision of git, but impressively that was apparently only a few days after the actual project start. http://www.spinics.net/lists/git/msg24141.html http://www.spinics.net/lists/git/msg24141.html
- ggggit 14y agoTridgwell's "reverse engineering" of BitKeeper is one of the funniest, and at the same time the saddest stories, I've read about software. http://lwn.net/Articles/132938 http://lwn.net/Articles/132938 It's companies like BitKeeper, who think using a command line is "not allowed" that are the reason so much software sucks. The interface Tridgewell used was the only one I'd be interested in. It's something you could build on top of. You could add abstraction to your heart's content. As for git, it's not nearly as simple as people portray it to be. You need to have a scripting language (e.g. Perl) and and http client (e.g. curl) already installed or you cannot compile, let alone use git. Now, this is not so bad, if git was just a little glue for some external programs. But try to compile git statically and you will end up with over 230MB of "small, simple, utilities". git is not so simple. It's command syntax is appealing to many. It makes git seem "simple". But the program itself is not simple in the sense of being robust. I can complile a static copy of the rcs or cvs programs, or even svn, and take them with me anywhere, all in the space of a few MB's. git has a lot of dependencies. It's easy to to break.
- humbledrone 14y agoUh, is "being easy to statically compile" some benchmark for simplicity that I've never heard of? Also, what do you care if git is 230MB? Do they even make thumb drives that small any more?
- Maro 14y ago> Uh, is "being easy to statically compile" some benchmark for simplicity that I've never heard of? Yes. It's not the benchmark, but it's a benchmark.
- ggggit 14y agoThank you Maro. I've never understood why static linking and easy compilation, not to mention being concerned with file sizes, upsets certain people when mentioned on mailing lists and forums. But it always does.
- kzrdude 14y ago
- mmariani 14y ago>+ GIT - the stupid content tracker Hmm… I think Linus thought it was stupid. >+"git" can mean anything, depending on your mood. Or... He was just in the everything-is-stupid mood. >+ - random three-letter combination that is pronounceable, and not actually used by any common UNIX command. The fact that it is a mispronounciation of "get" may or may not be relevant. I think everyone just goes with that. :) >+ - stupid. contemptible and despicable. simple. Take your pick from the dictionary of slang. Here! He said it again! >+ - "global information tracker": you're in a good mood, and it actually works for you. Angels sing, and a light suddenly fills the room. GitHub surely took it seriously and made it happen. Thank you! >+ - "goddamn idiotic truckload of sh*t": when it breaks Maybe I'll take it. Mainly because I don't want to learn how to think like Linus. >+This is a stupid (but extremely fast) directory content manager. It doesn't do a whole lot, but what it _does_ do is track directory contents efficiently. And here's Linus saying git is stupid, again. I think he really means it. Well, at least that day he did. Anyway, thanks for fossil Dr. Hip! :) edit: formatting.
- JonnieCache 14y agoHe means stupid as in simple, unaware of things it does not need to know. Stupidity and ignorance in software is high praise and it's very difficult to achieve. See: http://en.wikipedia.org/wiki/Information_hiding http://en.wikipedia.org/wiki/Information_hiding That style is just linus' way. It comes across as a lot more aggressive on screen than in person. To get a better sense of him, I'd recommend watching this talk he gave evangelising git at google back in 2007. It's pretty entertaining, and very educational on the issues facing VCS designers. http://www.youtube.com/watch?v=4XpnKHJAok8 http://www.youtube.com/watch?v=4XpnKHJAok8 To a certain extent, if you can knock git together in a couple of weeks you get a free pass to talk however you want, as long as you don't hurt anyone.
- mmariani 14y agoOuch! No heed to be harsh. I certainly appreciate Linus's work. Kudos to him! I understood his point on the stupidity thing. It even took some laughs out of me. And that's the reason I posted that, so other people could too. I don't mean to start a flamewar on scm, really. But I think git is overly complicated, and I believe I'm not alone on that. Anyway, don't take things too seriously and have a good one! PS: You gave a great idea. I should email Linus and offer to pay him some beers. That sure will be a great talk. Thanks mate!
- kator 14y agohttp://www.bitkeeper.com/Jobs.html http://www.bitkeeper.com/Jobs.html
- damian2000 14y agoGotta love this password handling bit ... pw = getpwuid(getuid()); if (!pw) usage("You don't exist. Go away!");
- wisty 14y agoSuggesting to HN - vote up articles which you learnt stuff from rather than articles in which you made some vapid political argument.
- lenkite 14y agoI used to keep messing up git till the time I studied the internal model. As long as you imagine a DAG and where the refs point to in your mind every time you execute a git command, you are good. Not that I am complaining - it is very powerful and tends to gets easier with use.