Bei mir gibt es ein Git-Repo mit “schwankendem” Platzbedarf:
- Früher war es mal sehr groß
- Dann hat ein Kollege die Historie bereinigt/gekürzt
- Jetzt verbraucht es diesen Plattenplatz:
- Frischer
git clone
: 100M - Alter
git clone
: 440M - Repo auf GITEA: 730M
- Frischer
Ziel dieser Beschreibung ist die Komprimierung des alten Clones und des Repos auf GITEA.
Alten Clone komprimieren
Ausgangslage
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
prune und gc
Versuch der Bereinigung mit git prune
und git gc
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
Bringt nix!
gc —aggressive
Noch ein Versuch mit git gc --aggressive
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
Bringt nix!
expire
1 2 3 4 5 6 7 8 9 10 11 |
|
Super!
Gitea-Repo komprimieren
Garbage-Collection auf Repositories ausführen
Innerhalb von Gitea:
- Benutzer/Uli oben rechts
- Administration
- Garbage-Collection auf Repositories ausführen – Ausführen!
Hilft ein wenig:
- Davor: 730 MB
- Danach: 385 MB
expire analog zum clone
1 2 3 4 5 6 7 8 9 10 11 |
|
Diverse weitere Experimente
Ich habe noch diese Dinge ausprobiert:
1 2 3 4 5 6 7 8 9 |
|
Alle bringen nix!
Vergleich lokales Repo mit Gitea-Repo
- “Bare”-Variante vom lokalen Repo erzeugen:
git clone --bare (meinrepo) (meinrepo).git2
- Sichten der Größe:
du -hs (meinrepo); du -hs (meinrepo).git2
- (meinrepo): 96M
- (meinrepo).git2: 45M
- Vergleich
Es stellt sich heraus, dass im Gitea-Repo diese Dateien zusätzlich vorhanden sind:
- ./FETCH_HEAD
- ./info/refs
- ./objects/info/commit-graph
- ./logs/HEAD
- ./logs/refs/heads/master
Sichten von “logs/refs/heads/master” gibt Hinweise auf PullRequests. Idee: Wir löschen alle PullRequests und schauen!
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Zusammenfassung
Wenn die Historie eines sehr großen Repos überarbeitet und/oder gekürzt wird, so sind diese Schritte notwendig damit der Plattenplatz freigegeben wird:
- Lokaler Clone
1 2 |
|
Gitea-Repo
- Alle alten Zweige (branches) löschen
- Alle alten PullRequests löschen
- Im Gitea-Container:
1 2 3 4 |
|
Das Endergebnis überzeugt:
Ort | Alter Platzbedarf | Neuer Platzbedarf |
---|---|---|
Lokaler Clone | 440M | 100M |
Gitea-Repo | 730M | 50M |
Links
Änderungen
- 2023-08-11: Erste Version