Ein Rust-Experiment führt zu 18 Prozent schnelleren Referenzlöschungen in Git

Optimizing Reference Deletions in Git

Git speichert Referenzen im files backend als einzelne Dateien oder gebündelt in der packed-refs-Datei, die bei großen Repositories mehrere Gigabyte erreichen kann. Jede Löschung schreibt diese Datei komplett neu. Beim Benchmark einer in Rust nachgebauten Variante fiel auf, dass C jeden unveränderten Eintrag per fprintf neu formatiert. Ein Patch schreibt die Daten stattdessen verbatim mit fwrite und beschleunigt das Löschen um rund 18 Prozent. Er ist bereits in master gemerged und kommt in Git v2.98.

Das Problem liegt im Design des files backend. Die naheliegende Lösung ist, Repositories nach und nach auf das neuere reftable backend umzustellen.

Mehr von diesem Tag

2026-11-11