Git aus einfachen Dateisystemideen herleiten
Zusammenfassung
Tom Preston-Werner entwickelt Gits Grundmodell gedanklich aus Dateien, Schnappschüssen, Hashwerten, Zeigern und gemeinsamer Historie. Git verwendet inhaltsadressierte Objekte.
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
- 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
Links zur Originalquelle und zum Webarchiv öffnen einen neuen Tab.