Von Gast (nicht überprüft) , 29 April 2026

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.