Comment sauter “Lâche Objet” popup lors de l'exécution de git gui'
Quand je lance git gui " je reçois un message qui dit
Ce référentiel a actuellement environ 1500 objets en vrac.
Il suggère ensuite de la compression de la base de données. Je l'ai fait avant, et il réduit les objets en vrac à environ 250, mais cela ne veut pas supprimer le popup. La compression de nouveau ne change pas le nombre d'objets en vrac.
Notre flux de travail actuel exige beaucoup de l'utilisation de "rebase" comme nous sommes en transition de Perforce, et Perforce est encore canoniques SCM. Une fois que Git est le canonique SCM, nous ferons régulièrement des fusions, et les objets en vrac problème devrait être grandement atténués.
Dans le temps de le dire, j'aimerais vraiment faire de cette "utiles" popup s'en aller.
- Cette boîte de dialogue est un excellent exemple d'une "fonction" que beaucoup de gens voudraient qu'il n'existait pas. Il n'est pas seulement gênant, il peut effacer important s'engage que s'est détachée après un hard reset.
Vous devez vous connecter pour publier un commentaire.
Puisque personne n'a encore de réponse, j'ai regardé dans le code pour voir comment faire pour supprimer le code qui montre jusqu'à ce que la boîte de dialogue. J'ai trouvé le
hint_gc
procédure qui le fait et l'endroit où il est appelé. En même temps, j'ai remarqué que la fin de l'année 2011 a été ajouté une option de configuration pour désactiver la boîte de dialogue. Ce changement (partie de git-gui 0.16.0) a été fusionné à Git de ligne du sur 2011-12-14.Donc, si vous utilisez Git v1.7.9 ou plus récent, vous pouvez désactiver la boîte de dialogue d'avertissement avec la commande suivante:
Si vous utilisez une version plus ancienne, vous pouvez l'éditer
/lib/git-core/git-gui
et retirer leafter 1000 hint_gc
ligne, ou de modifier/usr/share/git-gui/lib/database.tcl
et l'enlever le corps de lahint_gc
procédure. (Ces chemins d'accès aux fichiers sont sur Cygwin - sur d'autres environnements, les fichiers peuvent être dans des endroits différents. Pour Windows, il estc:\Program Files\Git\mingw64\libexec\git-core\git-gui.tcl
)after 1000 hint_gc
si l'avertissement qui se passe après10000
objets en vrac?after 1000
renvoie le nombre de millisecondes à attendre jusqu'à ce que la boîte de dialogue est affichée. En l'augmentant de "10000", la boîte de dialogue apparaîtra encore, mais il va prendre 10 secondes pour le faire à la place.database.tcl
contient la définition de la limite et peut être augmenté pour rendre la boîte de dialogue de moins en moins fréquentes.Mise à jour:
git prune
serait "résoudre" le problème, en ce qu'elle permettra de supprimer les objets en vrac(
git gc
appelsgit prune
, mais seulement pour les objets en vrac de plus de deux semaines, par défaut).Cependant, comme le OP Michael Donohue mentionne dans les commentaires:
Réponse originale à cette question:
Le problème de la "
git gc
" ne pas enlever les tous objets en vrac a été signalé auparavant (à la fin de 2008, ""git gc
" ne semble pas supprimer les objets non plus"Donc dans votre cas, serait un "
git prune
" être utile?(éventuellement avec l'aide de "maintenant", dans le
gc.pruneexpire
variable de config, nécessaire pour le comportement d'arriver).Vous avez également (à partir du même thread):
git gc
est proposée ci-dessous se débarrasser des pop-up (comme indiqué ci-dessous)?Lorsque "Lâche Objet" popup je sais qu'il est temps pour exécuter git du garbage collector:
Après que le popup s'en va.
Mise à jour: (en raison de T. E. D. est une suggestion)
J'ai extrait ci-dessous la routine de
git/share/git-gui/lib/database.tcl
Vous pouvez le modifier pour répondre à vos besoins.
Hmmmm....Je ne vois pas un argument de ligne de commande pour que, dans le docs.
Je suppose que tu peux toujours tirer vers le bas sa source, prenez le code de la boîte de dialogue, et de reconstruire.