bk99.de entertain the web since 1997

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

Originalartikel lesen →