{"thread":{"id":"1346","subject":"Git 1.0 Synopis (Draft v2)","startedAt":"2005-07-27T10:01:23Z","lastAt":"2005-07-29T21:26:21Z","messageCount":6,"participants":["Ryan Anderson","Junio C Hamano","Johannes Schindelin","Sam Ravnborg"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"6477","messageId":"20050727100123.GH19290@mythryan2.michonline.com","threadId":"1346","inReplyTo":null,"subject":"Git 1.0 Synopis (Draft v2)","fromName":"Ryan Anderson","fromEmail":"ryan@michonline.com","sentAt":"2005-07-27T10:01:23Z","receivedAt":"2005-07-27T10:01:23Z","isPatch":false,"sender":{"key":"ryan@michonline.com","avatar":null},"body":"[This is still a draft, but I think I incorporated the suggestons from\nthe last attempt.]\n\nSource Code Management with Git\n\nGit, sometimes called \"global information tracker\", is a \"directory\ncontent manager\".  Git has been designed to handle absolutely massive\nprojects with speed and efficiency, and the release of the 2.6.12 and\n(soon) the 2.6.13 version of the Linux kernel would indicate that it\ndoes this task well.\n\nGit falls into the category of distributed source code management tools,\nsimilar to Arch or Darcs (or, in the commercial world, BitKeeper).  Every Git\nworking directory is a full-fledged repository with full revision tracking\ncapabilities, not dependent on network access to a central server.\n\nGit uses the SHA1 hash algorithm to provide a content-addressable pseudo\nfilesystem, complete with its own version of fsck.\n  o Speed of use, both for the project maintainer, and the end-users, is\n    a key development principle.\n  o The history is stored as a directed acyclic graph, making long-lived\n    branches and repeated merging simple.\n  o A collection of related projects are building on the core Git project,\n    either to provide an easier to use interface on top (StGit, Cogito, qgit,\n    gitk, gitweb), or to take some of the underlying concepts and reimplement\n    them directly into another system (Arch 2.0, Darcs-git).\n  o Two, interchangeable, on-disk formats are used:\n    o An efficient, packed format that saves spaced and network\n      bandwidth.\n    o An unpacked format, optimized for fast writes and incremental\n      work.\n\nTo get a copy of Git:\n\tDaily snapshots are available at:\n\thttp://www.codemonkey.org.uk/projects/git-snapshots/git/\n\t(Thanks to Dave Jones)\n\n\tSource tarballs and RPMs at:\n\thttp://www.kernel.org/pub/software/scm/git/\n\n\tDeb packages at:\n\t<insert url here>\n\n\tOr via Git itself:\n\tgit clone http://www.kernel.org/pub/scm/git/git.git/\n\tgit clone rsync://rsync.kernel.org/pub/scm/git/git.git/\n\t(rsync is generally faster for an initial pull)\n\nGit distributions contain a tutorial in the Documentation subdirectory.\nAdditionally, the Kernel-Hacker's Git Tutorial at\nhttp://linux.yyz.us/git-howto.html may be useful.  (Thanks to Jeff Garzik for\nthat document)\n\nGit development takes place on the Git mailing list.  To subscribe, send an\nemail with just \"subscribe git\" in the body to majordomo@vger.kernel.org.\nMailing list archives are available at http://marc.theaimsgroup.com/?l=git\n\nGit results from the inspiration and frustration of Linus Torvalds, and\nthe enthusiastic help of over 300 participants on the development\nmailing list.[1]  It is maintained by Junio C Hamano <junkio@cox.net>.\n\n1 - Generated with the following, in a maildir folder:\n        find . -type f | xargs grep -h \"^From:\" | perl -ne \\\n        'tr#A-Z#a-z#; m#<(.*)># && print $1,\"\\n\";' | sort -u | wc -l\n\n(This summary written by Ryan Anderson <ryan@michonline.com>.  Please bug him\nwith any corrections or complaints.)\n\n\n\n\n-- \n\nRyan Anderson\n  sometimes Pug Majere\n"},{"id":"6489","messageId":"7vek9jq4n5.fsf@assigned-by-dhcp.cox.net","threadId":"1346","inReplyTo":"20050727100123.GH19290@mythryan2.michonline.com","subject":"Re: Git 1.0 Synopis (Draft v2)","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-07-27T22:13:18Z","receivedAt":"2005-07-27T22:13:18Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Ryan Anderson <ryan@michonline.com> writes:\n\n> Source Code Management with Git\n\nThanks for doing this.  Generally looks excellent.\n\n>   o Two, interchangeable, on-disk formats are used:\n>     o An efficient, packed format that saves spaced and network\n>       bandwidth.\n\n??? \"spaced\" ???\n\n> \tOr via Git itself:\n> \tgit clone http://www.kernel.org/pub/scm/git/git.git/\n> \tgit clone rsync://rsync.kernel.org/pub/scm/git/git.git/\n> \t(rsync is generally faster for an initial pull)\n\nThese need a target directory name to create, like this:\n\n    git clone rsync://rsync.kernel.org/pub/scm/git/git.git/ $new_dir\n    git clone http://www.kernel.org/pub/scm/git/git.git/ $new_dir\n\n> Git results from the inspiration and frustration of Linus Torvalds, and\n> the enthusiastic help of over 300 participants on the development\n> mailing list.[1]  It is maintained by Junio C Hamano <junkio@cox.net>.\n\nPlease drop the e-mail address here; you mention nobody else's.\n\nWell, dropping \"the current maintainer\" information altogether\nmight be even better; the above to a casual reader sounds like\nLinus was frustrated and I wrote it for him, which is definitely\nnot what we would like to say.  I suspect it still has more code\nby Linus than anybody else (I stopped counting some time ago).\n"},{"id":"6562","messageId":"20050729082730.GC32263@mythryan2.michonline.com","threadId":"1346","inReplyTo":"7vek9jq4n5.fsf@assigned-by-dhcp.cox.net","subject":"Re: Git 1.0 Synopis (Draft v2)","fromName":"Ryan Anderson","fromEmail":"ryan@michonline.com","sentAt":"2005-07-29T08:27:30Z","receivedAt":"2005-07-29T08:27:30Z","isPatch":false,"sender":{"key":"ryan@michonline.com","avatar":null},"body":"On Wed, Jul 27, 2005 at 03:13:18PM -0700, Junio C Hamano wrote:\n> > Git results from the inspiration and frustration of Linus Torvalds, and\n> > the enthusiastic help of over 300 participants on the development\n> > mailing list.[1]  It is maintained by Junio C Hamano <junkio@cox.net>.\n> \n> Please drop the e-mail address here; you mention nobody else's.\n> \n> Well, dropping \"the current maintainer\" information altogether\n> might be even better; the above to a casual reader sounds like\n> Linus was frustrated and I wrote it for him, which is definitely\n> not what we would like to say.  I suspect it still has more code\n> by Linus than anybody else (I stopped counting some time ago).\n\nOk.  I was thinking I could add \"current\" into that description.  Or,\nsomething like, \"Linus has since returned his focus to the kernel, and\npassed maintainership to ...\".\n\n-- \n\nRyan Anderson\n  sometimes Pug Majere\n"},{"id":"6563","messageId":"20050729082941.GD32263@mythryan2.michonline.com","threadId":"1346","inReplyTo":"20050727100123.GH19290@mythryan2.michonline.com","subject":"Git 1.0 Synopis (Draft v3","fromName":"Ryan Anderson","fromEmail":"ryan@michonline.com","sentAt":"2005-07-29T08:29:41Z","receivedAt":"2005-07-29T08:29:41Z","isPatch":false,"sender":{"key":"ryan@michonline.com","avatar":null},"body":"\nSource Code Management with Git\n\n\"git\" can mean anything, depending on your mood.\n\n - random three-letter combination that is pronounceable, and not\n   actually used by any common UNIX command.  The fact that it is a\n   mispronunciation of \"get\" may or may not be relevant.\n - stupid. contemptible and despicable. simple. Take your pick from the\n   dictionary of slang.\n - \"global information tracker\": you're in a good mood, and it actually\n   works for you. Angels sing, and a light suddenly fills the room. \n - \"goddamn idiotic truckload of sh*t\": when it breaks\n\nGit is a \"directory content manager\".  Git has been designed to handle\nabsolutely massive projects with speed and efficiency, and the release of the\n2.6.12 and (soon) the 2.6.13 version of the Linux kernel would indicate that it\ndoes this task well.\n\nGit falls into the category of distributed source code management tools,\nsimilar to Arch or Darcs (or, in the commercial world, BitKeeper).  Every Git\nworking directory is a full-fledged repository with full revision tracking\ncapabilities, not dependent on network access to a central server.\n\nGit provides a content-addressable pseudo filesystem, complete with its own\nversion of fsck.\n\n  o Speed of use, both for the project maintainer, and the end-users, is\n    a key development principle.\n\n  o The history is stored as a directed acyclic graph, making long-lived\n    branches and repeated merging simple.\n\n  o The core Git project considers itself to provide \"plumbing\" for other\n     projects, as well as to serve to arbitrate for compatibility between them.\n     The project built on top of the core Git are referred to as \"porcelain\".\n     StGit, Cogito, qgit, gitk and gitweb are all building upon the core Git\n     tools, and providing an easy to use interface to various pieces of\n     functionality.\n\n  o Some other projects have taken the concepts from the core Git project, and\n    are either porting an existing toolset to use the Git tools, or\n    reimplementing the concepts internally, to benefit from the performance\n     improvements.  This includes both Arch 2.0, and Darcs-git.\n  \n  o Two, interchangeable, on-disk formats are used:\n    o An efficient, packed format that saves space and network\n      bandwidth.\n    o An unpacked format, optimized for fast writes and incremental\n      work.\n\nTo get a copy of Git:\n\tDaily snapshots are available at:\n\thttp://www.codemonkey.org.uk/projects/git-snapshots/git/\n\t(Thanks to Dave Jones)\n\n\tSource tarballs and RPMs at:\n\thttp://www.kernel.org/pub/software/scm/git/\n\n\tDeb packages at:\n\t<insert url here>\n\n\tOr via Git itself:\n\tgit clone http://www.kernel.org/pub/scm/git/git.git/ <local directory>\n\tgit clone rsync://rsync.kernel.org/pub/scm/git/git.git/ <local directory>\n\n\t(rsync is generally faster for an initial clone, you can switch later\n\tby editing .git/branches/origin and changing the url)\n\nTo get the 'Porcelain' tools mentioned above:\n\tSCM Interface layers:\n\tcogito - http://www.kernel.org/pub/software/scm/cogito/\n\tStGIT - http://www.procode.org/stgit/\n\n\tHistory Visualization:\n\tgitk - http://ozlabs.org/~paulus/gitk/\n\tgitweb - http://www.kernel.org/pub/software/scm/gitweb/\n\tqgit - http://sourceforge.net/projects/qgit\n\n\nGit distributions contain a tutorial in the Documentation subdirectory.\nAdditionally, the Kernel-Hacker's Git Tutorial at\nhttp://linux.yyz.us/git-howto.html may be useful.  (Thanks to Jeff Garzik for\nthat document)\n\nGit development takes place on the Git mailing list.  To subscribe, send an\nemail with just \"subscribe git\" in the body to majordomo@vger.kernel.org.\nMailing list archives are available at http://marc.theaimsgroup.com/?l=git\n\n(This summary written by Ryan Anderson <ryan@michonline.com>.  Please bug him\nwith any corrections or complaints.)\n"},{"id":"6577","messageId":"Pine.LNX.4.58.0507291258380.5849@wgmdd8.biozentrum.uni-wuerzburg.de","threadId":"1346","inReplyTo":"20050729082941.GD32263@mythryan2.michonline.com","subject":"Re: Git 1.0 Synopis (Draft v3","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2005-07-29T10:58:44Z","receivedAt":"2005-07-29T10:58:44Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"I like it!\n\nCiao,\nDscho\n"},{"id":"6604","messageId":"20050729212621.GB8263@mars.ravnborg.org","threadId":"1346","inReplyTo":"20050729082941.GD32263@mythryan2.michonline.com","subject":"Re: Git 1.0 Synopis (Draft v3","fromName":"Sam Ravnborg","fromEmail":"sam@ravnborg.org","sentAt":"2005-07-29T21:26:21Z","receivedAt":"2005-07-29T21:26:21Z","isPatch":false,"sender":{"key":"sam@ravnborg.org","avatar":"https://gravatar.com/avatar/168a912606ed0742d840bb365e3cc21db390c36531a58341dc7a069cc1f15f62?d=mp&s=160"},"body":"On Fri, Jul 29, 2005 at 04:29:41AM -0400, Ryan Anderson wrote:\n> Source Code Management with Git\n....\n\nThe article should include a HOWTO part alos. So people can see how to\nedit a file, pull from a remote repository etc.\nSince you have introduced core and porcelains it would be most logical\nto use one of the porcelains in these examples, maybe accompanied by the\nraw git commands being executed.\n\n\tSam\n"}]}