Git Data Structure Design

This is a past event

27 people went

Every 1st Thursday of the month

Location image of event venue

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:

0. 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.

1. Read Section 1 of the paper, "Low Level Design".

2. 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

3. 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.