Git aus einfachen Dateisystemideen herleiten
Zusammenfassung
Tom Preston-Werner entwickelt Gits Grundmodell gedanklich aus Dateien, Schnappschüssen, Hashwerten, Zeigern und gemeinsamer Historie.
Ideen
- Vollständige Projektkopien bilden zunächst einfache manuelle Schnappschüsse.
- Hashwerte geben unveränderlichen Inhalten stabile Namen.
- Baumobjekte verbinden Dateinamen mit gespeicherten Inhalten.
- Commits ergänzen Eltern, Autor und Beschreibung.
- Branches benennen veränderliche Spitzen einer Commitfolge.
- Verteilte Repositories tauschen fehlende Objekte statt zentrale Zustände aus.
Einsichten
- Komplexe Werkzeuge werden verständlich, wenn ihr Datenmodell schrittweise rekonstruiert wird.
- Unveränderliche Inhalte vereinfachen Replikation, Prüfung und Zwischenspeicherung.
- Namen und Inhalte brauchen unterschiedliche Lebenszyklen.
- Verteilung funktioniert leichter, wenn Objekte unabhängig adressierbar sind.
Fakten
- Der Beitrag erschien im Mai 2009.
- Git verwendet inhaltsadressierte Objekte.
- Commits bilden über Elternverweise einen gerichteten Graphen.
- Branches bestehen konzeptionell aus Referenzen auf Commits.
Empfehlungen
- Zeichne Objektbeziehungen eines kleinen Repositories von Hand.
- Nutze git cat-file zur Untersuchung gespeicherter Objekte.
- Trenne unveränderliche Objekte von beweglichen Referenzen.
Referenzen
Der Link zur Originalquelle öffnet einen neuen Tab.