{"thread":{"id":"19977","subject":"Official git repository history?","startedAt":"2009-06-29T14:27:36Z","lastAt":"2009-07-01T08:08:17Z","messageCount":8,"participants":["Graeme Geldenhuys","Junio C Hamano","Andreas Ericsson","Linus Torvalds","Daniel Barkalow"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"117214","messageId":"h2aj43$ab0$1@ger.gmane.org","threadId":"19977","inReplyTo":null,"subject":"Official git repository history?","fromName":"Graeme Geldenhuys","fromEmail":"graemeg@gmail.com","sentAt":"2009-06-29T14:27:36Z","receivedAt":"2009-06-29T14:27:36Z","isPatch":false,"sender":{"key":"graemeg@gmail.com","avatar":"https://gravatar.com/avatar/fdaae0cf0a07bd33782720fb37ae0450f504d4e04c57c6e8f3517d11d503fdc6?d=mp&s=160"},"body":"Hi,\n\nYesterday I cloned the official git repository and for fun I checkout\nout the first ever commit \"e83c5163316f...\"\n\nSo how did Linus get those first few commits / history into the official\ngit repository? Was the first 8 C source code files already enough to\nwork as a basic git repository?  Or did he use another revision control\nsystem and then later imported that history into the official git\nrepository (when git was working)?\n\nJust curious?  :-)\n\n\nRegards,\n  - Graeme -\n"},{"id":"117217","messageId":"7vhbxy9n9q.fsf@alter.siamese.dyndns.org","threadId":"19977","inReplyTo":"h2aj43$ab0$1@ger.gmane.org","subject":"Re: Official git repository history?","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2009-06-30T07:46:57Z","receivedAt":"2009-06-30T07:46:57Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Graeme Geldenhuys <graemeg@gmail.com> writes:\n\n> So how did Linus get those first few commits / history into the official\n> git repository? Was the first 8 C source code files already enough to\n> work as a basic git repository?\n\nHe did it very well, and Yes.\n\nYou would need to check out an old revision, say v0.99, and look at the\noriginal tutorial by Linus in Documentation/tutorial.txt.  It was since\nrewritten into Documentation/gittutorial-2.txt but the original command\nsequence Linus used from the initial version of git was replaced with\ntheir more modern variants (e.g. Linus used \"git-update-cache --add\" but\nthe updated tutorial talks about \"git add\" that did not exist nor Linus\nneeded to have back then).\n"},{"id":"117219","messageId":"h2chap$i27$1@ger.gmane.org","threadId":"19977","inReplyTo":"7vhbxy9n9q.fsf@alter.siamese.dyndns.org","subject":"Re: Official git repository history?","fromName":"Graeme Geldenhuys","fromEmail":"graemeg@gmail.com","sentAt":"2009-06-30T08:09:13Z","receivedAt":"2009-06-30T08:09:13Z","isPatch":false,"sender":{"key":"graemeg@gmail.com","avatar":"https://gravatar.com/avatar/fdaae0cf0a07bd33782720fb37ae0450f504d4e04c57c6e8f3517d11d503fdc6?d=mp&s=160"},"body":"Junio C Hamano wrote:\n>> git repository? Was the first 8 C source code files already enough to\n>> work as a basic git repository?\n> \n> He did it very well, and Yes.\n\nWow, very impressive! Such a little code, yet already workable.\n\n\n> You would need to check out an old revision, say v0.99, and look at the\n> original tutorial by Linus in Documentation/tutorial.txt.  It was since\n\n\nLast night I played further with the first ever commit. I managed to figure out the sequence in which commands had to be run. Kudos to the people that decided the make the commands easier in the later versions. :-)\n\nRegards,\n  - Graeme -\n\n-- \nfpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal http://opensoft.homeip.net/fpgui/ \n"},{"id":"117223","messageId":"4A49DBE0.5060500@op5.se","threadId":"19977","inReplyTo":"h2chap$i27$1@ger.gmane.org","subject":"Re: Official git repository history?","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2009-06-30T09:33:20Z","receivedAt":"2009-06-30T09:33:20Z","isPatch":false,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Graeme Geldenhuys wrote:\n> Junio C Hamano wrote:\n>>> git repository? Was the first 8 C source code files already enough to\n>>> work as a basic git repository?\n>> He did it very well, and Yes.\n> \n> Wow, very impressive! Such a little code, yet already workable.\n> \n\nIndeed. The git concept is an extremely simple one. The complexity comes\nwhen you start optimizing it, really. Producing packfiles today requires\nmore code than made up all of git at its inception. Simple models can\neasily be extended with complex algorithms, while complex models generally\nrequire the simplest possible algorithm to work reliably. This design\nlesson has served me well over the years.\n\n> \n>> You would need to check out an old revision, say v0.99, and look at the\n>> original tutorial by Linus in Documentation/tutorial.txt.  It was since\n> \n> \n> Last night I played further with the first ever commit. I managed to\n> figure out the sequence in which commands had to be run. Kudos to the\n> people that decided the make the commands easier in the later versions. :-)\n> \n\nCheers. There's about 650 of us, so that's a lot of kudos ;-)\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n\nConsidering the successes of the wars on alcohol, poverty, drugs and\nterror, I think we should give some serious thought to declaring war\non peace.\n"},{"id":"117224","messageId":"h2cmkf$8pp$1@ger.gmane.org","threadId":"19977","inReplyTo":"4A49DBE0.5060500@op5.se","subject":"Re: Official git repository history?","fromName":"Graeme Geldenhuys","fromEmail":"graemeg@gmail.com","sentAt":"2009-06-30T09:39:43Z","receivedAt":"2009-06-30T09:39:43Z","isPatch":false,"sender":{"key":"graemeg@gmail.com","avatar":"https://gravatar.com/avatar/fdaae0cf0a07bd33782720fb37ae0450f504d4e04c57c6e8f3517d11d503fdc6?d=mp&s=160"},"body":"Andreas Ericsson wrote:\n> \n> Indeed. The git concept is an extremely simple one. The complexity comes\n\nThat is what amazed me the most. The concept IS truly simple.\n\n\nRegards,\n  - Graeme -\n\n-- \nfpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal\nhttp://opensoft.homeip.net/fpgui/\n"},{"id":"117248","messageId":"alpine.LFD.2.01.0906301058100.3605@localhost.localdomain","threadId":"19977","inReplyTo":"h2chap$i27$1@ger.gmane.org","subject":"Re: Official git repository history?","fromName":"Linus Torvalds","fromEmail":"torvalds@linux-foundation.org","sentAt":"2009-06-30T19:01:57Z","receivedAt":"2009-06-30T19:01:57Z","isPatch":false,"sender":{"key":"torvalds@linux-foundation.org","avatar":"https://avatars.githubusercontent.com/u/1024025?v=4"},"body":"\n\nOn Tue, 30 Jun 2009, Graeme Geldenhuys wrote:\n> \n> Last night I played further with the first ever commit. I managed to \n> figure out the sequence in which commands had to be run. Kudos to the \n> people that decided the make the commands easier in the later versions. \n> :-)\n\nWell, in all fairness, even _I_ didn't enjoy using it at that stage. It \nwas all very hacky, with the manual \"write-tree\" + \"commit-tree\" stuff. \n\nBut it's interesting to look at the timing:\n\n - Start early April\n\n - First git commit April 7\n\n - first kernel commit April 16\n\n - first merge: April 17 (14:47)\n\nThe time of that first merge is interesting, because it's worth \ncorrelating the git tree with the early kernel tree there. What preceded \nthat first merge? Yup: the git 'merge-base' program was written a couple \nof hours before.\n\nBut the really interesting thing (to me) is that while I had tools/scripts \nto apply patches and to do relatively fancy tthings like merges etc \nbasically just a couple of weeks after starting, it's telling just how \nlong it took for something as simple as \"git commit\" to happen: May 30.\n\nNever mind that it was actually just a totally trivial shell script, \nliterally just a few lines. So it wasn't about the technology, it's very \nmuch a sign of what mattered to me.\n\nI mean, I had a tool to create merges with conflicts back in mid-april! \nBut something as simple as just committing the existing tree? No tools, \nyou had to do that whole \n\n\tgit-update-index ..\n\tcommit=$(git-commit-tree $(git-write-tree) -p HEAD)\n\t.. type in message ..\n\techo $commit > .git/HEAD\n\nsong-and-dance by hand.\n\nOr use cogito, which explains the success of early wrappers - other people \nhad rather different priorities than I did.\n\n\t\t\tLinus\n"},{"id":"117271","messageId":"alpine.LNX.2.00.0906301842430.2147@iabervon.org","threadId":"19977","inReplyTo":"h2aj43$ab0$1@ger.gmane.org","subject":"Re: Official git repository history?","fromName":"Daniel Barkalow","fromEmail":"barkalow@iabervon.org","sentAt":"2009-06-30T23:06:01Z","receivedAt":"2009-06-30T23:06:01Z","isPatch":false,"sender":{"key":"barkalow@iabervon.org","avatar":"https://avatars.githubusercontent.com/u/55364219?v=4"},"body":"On Mon, 29 Jun 2009, Graeme Geldenhuys wrote:\n\n> Hi,\n> \n> Yesterday I cloned the official git repository and for fun I checkout\n> out the first ever commit \"e83c5163316f...\"\n> \n> So how did Linus get those first few commits / history into the official\n> git repository? Was the first 8 C source code files already enough to\n> work as a basic git repository?  Or did he use another revision control\n> system and then later imported that history into the official git\n> repository (when git was working)?\n> \n> Just curious?  :-)\n\nTake a look at http://lkml.org/lkml/2005/4/8/9 and the earliest commits in \nthe git.git repository; the directory he mentions had a non-bare \nrepository hosting the commits up to that point, which would have been \ne497ea2a9b6c378f01d092c210af20cbee762475.\n\n\t-Daniel\n*This .sig left intentionally blank*\n"},{"id":"117293","messageId":"h2f5l7$b54$1@ger.gmane.org","threadId":"19977","inReplyTo":"alpine.LFD.2.01.0906301058100.3605@localhost.localdomain","subject":"Re: Official git repository history?","fromName":"Graeme Geldenhuys","fromEmail":"graemeg@gmail.com","sentAt":"2009-07-01T08:08:17Z","receivedAt":"2009-07-01T08:08:17Z","isPatch":false,"sender":{"key":"graemeg@gmail.com","avatar":"https://gravatar.com/avatar/fdaae0cf0a07bd33782720fb37ae0450f504d4e04c57c6e8f3517d11d503fdc6?d=mp&s=160"},"body":"Linus Torvalds wrote:\n> I mean, I had a tool to create merges with conflicts back in mid-april! \n> But something as simple as just committing the existing tree? No tools, \n> you had to do that whole .... song-and-dance by hand.\n\n\nVery true!  It's the workings of a technical mind. ;-)  It's all about priorities.\n\n\n\nRegards,\n  - Graeme -\n\n-- \nfpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal\nhttp://opensoft.homeip.net/fpgui/\n"}]}