Cuando ejecuto 'git gui' me sale una ventana emergente que dice
Este repositorio actualmente tiene aproximadamente 1500 objetos sueltos.
Luego sugiere comprimir la base de datos. He hecho esto antes, y reduce los objetos sueltos a aproximadamente 250, pero eso no suprime la ventana emergente. Comprimir de nuevo no cambia la cantidad de objetos sueltos.
Nuestro flujo de trabajo actual requiere un uso significativo de 'rebase' a medida que hacemos la transición de Perforce, y Perforce sigue siendo el SCM canónico. Una vez que Git sea el SCM canónico, haremos fusiones regulares, y el problema de los objetos sueltos debería mitigarse en gran medida.
Mientras tanto, realmente me gustaría hacer que esta ventana emergente 'útil' desaparezca.

Respuestas:
Como nadie tenía aún una respuesta, busqué en el código para ver cómo eliminar el código que muestra ese diálogo. Encontré el
hint_gcprocedimiento que lo hace y el lugar donde se llama. Al mismo tiempo, noté que a finales de 2011 se agregó una opción de configuración para deshabilitar el diálogo . Este cambio (parte de git-gui 0.16.0) se fusionó con la línea principal de Git el 14/12/2011 .Entonces, si usa Git v1.7.9 o posterior, puede deshabilitar el cuadro de diálogo de advertencia con el siguiente comando:
Si está utilizando una versión anterior, puede editar
/lib/git-core/git-guiy eliminar laafter 1000 hint_gclínea, o editar/usr/share/git-gui/lib/database.tcly eliminar el cuerpo delhint_gcprocedimiento. (Estas rutas de archivo se encuentran en Cygwin; en otros entornos, los archivos pueden estar en ubicaciones diferentes. Para Windows lo esc:\Program Files\Git\mingw64\libexec\git-core\git-gui.tcl)fuente
after 1000 hint_gcpara que la advertencia ocurra después de10000objetos sueltos?after 1000refiere a la cantidad de milisegundos que hay que esperar hasta que se muestre el cuadro de diálogo. Al aumentarlo a "10000", el cuadro de diálogo seguirá apareciendo, pero tardará 10 segundos en hacerlo.database.tclcontiene la definición del límite y se puede aumentar para que el diálogo sea menos frecuente.Actualización:
git prune"resolvería" el problema, ya que eliminará esos objetos sueltos(
git gcllamadasgit prune, pero solo para objetos sueltos de más de dos semanas, por defecto).Sin embargo, como el OP Michael Donohue menciona en los comentarios:
Respuesta original:
El problema de "
git gc" no eliminar todos los objetos sueltos ya se informó (a fines de 2008, " "git gc"ya no parece eliminar objetos sueltos "Entonces, en su caso, ¿
git prunesería útil un " "?(posiblemente con el uso de "ahora" en la
gc.pruneexpirevariable de configuración, necesaria para que ocurra el comportamiento anterior).También tienes (del mismo hilo):
fuente
Cuando aparece la ventana emergente "Loose Object", sé que es hora de ejecutar el recolector de basura de git:
Después de eso, la ventana emergente desaparece.
Actualización: (debido a la sugerencia de TED)
Extraje la siguiente rutina de
git/share/git-gui/lib/database.tclPuede modificarla para satisfacer sus necesidades.
fuente
git gcdesde la línea de comando resolvió el problema ... simplemente hacer clicoken git gui de alguna manera no funcionó ...Hmmmm .... No veo un argumento de línea de comandos para eso en los documentos .
Supongo que siempre puedes extraer su fuente, extraer el código para el diálogo y reconstruir.
fuente