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

Repack-Budgets

Wenn Git Deltas wahrend des Repacks berechnet, betrachtet es ein Fenster von Kandidaten-Basisobjekten pro Ziel. Grossere Fenster produzieren kleinere Packs, verwenden aber mehr Speicher und CPU.

Schlussel-Stellschrauben

[pack]
windowMemory = 256m
threads = 0
deltaCacheSize = 256m
deltaCacheLimit = 1000
window = 10
depth = 50
sizeLimit = 2g
bigFileThreshold = 512m

Repacking mit benutzerdefinierten Budgets

git repack -adf --window=250 --depth=50 \
  --window-memory=512m --threads=8 \
  --write-midx --write-bitmap-index

Speicher-Mathematik

git -c pack.threads=2 -c pack.windowMemory=128m repack -adf

Server-Tuning

[uploadpack]
packObjectsHook = /usr/local/bin/pack-objects-wrapper
[pack]
threads = 4
windowMemory = 128m

Grosse Datei-Schwelle

git config core.bigFileThreshold 50m

Haufige Fehler

--window=2000 in der Hoffnung auf engere Packs ohne Speicher-Test setzen — OOM folgt.

Effekt messen

du -sh .git/objects/pack/
git verify-pack -v .git/objects/pack/pack-*.idx | tail -3
GIT_TRACE2_PERF=1 git repack -adf 2>&1 | tail -20