git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: How would Git chapter look like in "The Architecture of Open Source Applications"?

From
Jeff King <peff@peff.net>
Date
May 30, 2011, 03:40 UTC
Message-ID
<20110530034044.GC27691@sigill.intra.peff.net>
In-Reply-To
<201105281417.39883.jnareb@gmail.com>
On Sat, May 28, 2011 at 02:17:38PM +0200, Jakub Narebski wrote:
Show 5 quoted lines
> Among covered programs is Mercurial (chapter by Dirkjan Ochtman)...
> but unfortunately no Git (they probably thought that one DVCS is enough).
> 
> How would such chapter on Git look like?  Authors of this book
> encourage (among others) to write new chapters.

I just skimmed the Mercurial chapter, but they do cover a fair bit of general DVCS architecture. For git, I would guess a good approach would be to describe the data structures (i.e., content-addressable object database, DAG of commits, refs storing branches and tags), as everything else falls out from there. Most of the basic commands can be explained as "do some simple operation to the history graph or object db" and the more complex commands are compositions of the simple ones. So the architecture is really about having a data structure that represents the problem, exposing it to the user, and then building some niceties around the basic data structure operations.

Of course that's just my perspective. Linus might have written something totally different. :)

-Peff
Previous: Jakub NarebskiNext: Jakub Narebski
Message 2 of 3 in “How would Git chapter look like in "The Architecture of Open Source Applications"?”
  1. Jakub NarebskiMay 28, 2011
  2. Jeff KingMay 30, 2011
  3. Jakub NarebskiMay 30, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.