2017-09-16 5 views
0

Ich habe ein großes Git Repository mit 17 Jahren Geschichte. Nach der Konvertierung mit svn2git mache ich normalerweise ein 'git repack -a -d -f'. Das sagt 'nichts neues zu packen'. Dann, wenn ich es auf den Server (in meinem Fall Bit Bucket) schieben, und dann das Repository auf dem Server suchen und neu packen, repliziert es das gesamte Repository. Ich würde gerne in der Lage sein, das ganze Repo wenn immer möglich neu zu packen. Ich kann nicht herausfinden, was die Änderungen zwischen dem Drücken auf den Server sind, der das Umpacken ermöglicht. Beachten Sie, dass am Repository zwischen dem Client und dem Server keine Änderungen vorgenommen werden.Warum sagt 'git repack' manchmal 'Nichts neues zum packen'. und manchmal packt es alles (ohne Änderungen am Repo)?

+0

Meinst du, es druckt 'nichts neues zu verpacken.'? – torek

+0

Tritt ein spezifisches Problem auf, das Sie dazu auffordert, Ihr Repository neu zu packen? Normalerweise wird dies automatisch erledigt. – LightBender

+0

Das Repo ist ziemlich groß> 3,4 GB, Verpackung und Müllsammlung rasieren 1GB von der Größe des Repos. Das Umpacken verbessert die Klonzeiten und verbessert die Leistung des Bit-Buckets, wenn das Repo im Webbrowser gerendert wird. – eeijlar

Antwort

0

Der Ausgang Sie kommt aus these source lines sehen:

if (!names.nr && !quiet) 
      printf("Nothing new to pack.\n"); 

Hier names.nr ist die Zahl der SHA-1-ID Zeilen liest aus dem git pack-objects Befehl, wenn sie mit den berechneten in den argv und Umgebung zur Verfügung gestellt Argumenten lief früher in demselben Code.

Was passiert in diesem Fall ist, dass was auch immer svn2git Dienstprogramm Sie verwenden, baut eine einzelne Pack-Datei, und aus welchem ​​Grund auch immer, git pack-objects wählt diese Datei allein zu lassen.

Was ich nicht erklären kann ist, warum -a -d -f kein Repack erzwingen, weil es sollte. Der Befehl git pack-objects sollte eine neue Paketdatei mit neuer Komprimierung generiert haben. (Ich nehme an, eine Möglichkeit ist, dass git pack-objects einfach ganz auf Ihrem speziellen System versagt, aber dann sollten Sie sich darüber ebenfalls beschweren.)

Verwandte Themen