Git Data Structure Design


Details
The Git repository format is a marvel of data structure design — nearly unchanged since the project's inception — and understanding it is key to becoming a Git power user.
In this talk, starting from the blob, commit, and tree objects that live inside Git's content-addressable store, we'll explore what goes on inside the .git directory; how it all ties back to a sometimes-baffling command line interface; and how well the core Git model withstands attempts to extend it such as Git's subprojects, Git Annex, and alternative user interfaces.
Presenter: Marvin Humphrey
Paper: "Git—A Stupid Content Tracker", by Junio C. Hamano (2006)
https://www.kernel.org/doc/ols/2006/ols2006v1-pages-385-394.pdf
---
How to read the paper, in four optional steps:
-
Skip it and attend anyway — the presentation won't assume attendees have read the paper, though it will be helpful if you've at least tried Git.
-
Read Section 1 of the paper, "Low Level Design".
-
Spelunk into the .git directory in some local repository and have a look around. If you'd prefer to take a longer guided tour, consider working through https://git-scm.com/book/en/v2/Git-Internals-Git-Objects
-
Read the rest of the paper.
---
Street parking on 6th, 7th & 8th Avenues north of B Street is usually easy at that hour. Meters nearby are free after 6. Read signage before you park on A street.
If you're interested in presenting a paper please fill out this form (https://docs.google.com/forms/d/e/1FAIpQLScaI-fWdys27-ByT_HdtsJ73V4AxZr0hf1GSqLsQ1IwAaPdIQ/viewform) or talk to us in person at the meetup.

Git Data Structure Design