Die Kosten des vollstandigen Repacks
Traditionelles git gc fuhrt git repack -ad aus und schreibt alle Objekte in ein Packfile um. Auf einem Multi-Gigabyte-Repo sind das Stunden CPU und IO. Geometrisches Repacking (Git 2.32+) vermeidet dies.
Wie es funktioniert
Pack-Grossen bilden eine Sequenz, in der jeder Pack mindestens N-mal grosser ist als der nachstkleinere.
Ausfuhrung
git repack --geometric=2 -d
git repack --geometric=2 -d --write-midx
git config maintenance.incremental-repack.enabled true
Paarung mit MIDX
git config core.multiPackIndex true
git multi-pack-index write
git multi-pack-index expire
Background Maintenance
git maintenance start
git maintenance run --task=incremental-repack
Wann vollstandiges Repack erzwingen
git repack -ad --depth=50 --window=250 --write-midx --write-bitmap-index
Server-seitige Uberlegungen
Forge-Server (GitHub, GitLab, Gitea) verwenden geometrisches Repack im grossen Massstab.
Haufige Fehler
Geometrisches Repack ohne MIDX ausfuhren — Performance regressiert.
Haufige Werte
- Default
--geometric=2: ausgewogen. --geometric=4: weniger, grossere Packs.--geometric=1.5: aggressivere Zusammenfuhrung.