Wenn ich 'git gui' starte, wird ein Popup mit der Aufschrift angezeigt
Dieses Repository enthält derzeit ungefähr 1500 lose Objekte.
Anschließend wird vorgeschlagen, die Datenbank zu komprimieren. Ich habe das schon einmal gemacht und es reduziert die losen Objekte auf ungefähr 250, aber das unterdrückt das Popup nicht. Durch erneutes Komprimieren wird die Anzahl der losen Objekte nicht geändert.
Unser aktueller Workflow erfordert eine erhebliche Verwendung von "Rebase", wenn wir von Perforce wechseln, und Perforce ist immer noch das kanonische SCM. Sobald Git das kanonische SCM ist, werden wir regelmäßige Zusammenführungen durchführen, und das Problem mit losen Objekten sollte stark gemindert werden.
In der Zwischenzeit möchte ich dieses "hilfreiche" Popup wirklich verschwinden lassen.
Antworten:
Da noch niemand eine Antwort hatte, habe ich in den Code geschaut, um zu sehen, wie der Code entfernt werden kann, der diesen Dialog anzeigt. Ich habe die
hint_gc
Prozedur gefunden , die es macht, und den Ort, an dem es aufgerufen wird. Gleichzeitig bemerkte ich, dass Ende 2011 eine Konfigurationsoption zum Deaktivieren des Dialogs hinzugefügt wurde . Diese Änderung (Teil von git-gui 0.16.0) wurde am 14.12.2011 mit der Hauptlinie von Git zusammengeführt .Wenn Sie also Git v1.7.9 oder höher verwenden, können Sie den Warndialog mit dem folgenden Befehl deaktivieren:
Wenn Sie eine ältere Version verwenden, können Sie
/lib/git-core/git-gui
dieafter 1000 hint_gc
Zeile bearbeiten/usr/share/git-gui/lib/database.tcl
und entfernen oder den Hauptteil derhint_gc
Prozedur bearbeiten und entfernen . (Diese Dateipfade befinden sich in Cygwin. In anderen Umgebungen befinden sich die Dateien möglicherweise an einem anderen Speicherort. Für Windows ist dies der Fall.c:\Program Files\Git\mingw64\libexec\git-core\git-gui.tcl
)quelle
after 1000 hint_gc
damit die Warnung nach10000
losen Gegenständen auftritt?after 1000
bezieht sich auf die Anzahl der Millisekunden, die gewartet werden muss, bis der Dialog angezeigt wird. Wenn Sie den Wert auf "10000" erhöhen, wird der Dialog weiterhin angezeigt. Es dauert jedoch 10 Sekunden, bis er ausgeführt wird.database.tcl
enthält es jedoch die Definition des Grenzwerts und kann erhöht werden, um den Dialog weniger häufig zu gestalten.Update:
git prune
würde das Problem "lösen", indem diese losen Objekte entfernt werden(
git gc
Aufrufegit prune
, standardmäßig jedoch nur für lose Objekte, die älter als zwei Wochen sind).Wie das OP Michael Donohue jedoch in den Kommentaren erwähnt:
Ursprüngliche Antwort:
Das Problem der „
git gc
“ nicht entfernen Sie alle losen Gegenstände hat vor (Ende 2008 berichtet wurde, „ “git gc
„scheint nicht lose zu entfernen Objekte mehr “Wäre in Ihrem Fall ein "
git prune
" hilfreich?(Möglicherweise mit "jetzt" in der
gc.pruneexpire
Konfigurationsvariablen, die für das obige Verhalten erforderlich ist).Sie haben auch (aus dem gleichen Thread):
quelle
Beim Popup "Loose Object" weiß ich, dass es Zeit ist, den Garbage Collector von git auszuführen:
Danach verschwindet das Popup.
Update: (aufgrund des Vorschlags von TED)
Ich habe die folgende Routine aus extrahiert.
git/share/git-gui/lib/database.tcl
Sie können sie an Ihre Bedürfnisse anpassen.
quelle
git gc
von der Kommandozeile das Problem gelöst ... nur aufok
git gui zu klicken hat irgendwie nicht den Trick gemacht ...Hmmmm .... Ich sehe kein Befehlszeilenargument dafür in den Dokumenten .
Ich nehme an, Sie könnten jederzeit die Quelle abrufen, den Code für den Dialog herausnehmen und neu erstellen.
quelle