2010-05-20 26 views
22

Tengo un gran repositorio en una carpeta compartida. Uso git desde dentro de una VM en esa carpeta. Todo funciona bien, pero el repositorio es grande y git está buscando en todos los directorios y archivos cuando el compromiso es lento. No puedo mover este repositorio fuera de la carpeta compartida.git ¿puedo acelerar el compromiso?

Me trataron de git add archivos y directorios específicos, pero cuando lo hago git commit -m "something" todavía se apaga en que la Odisea a través del árbol de directorios.

¿Puedo hacer confirmaciones que ignoran el resto del árbol?

Respuesta

35

Usted puede tratar de activar la opción preloadindex, descrito en el git-config man page:

core.preloadindex

Habilitar precarga índice paralelo para operaciones como git diff

Esto puede acelerar las operaciones como el estado de git diff y git, especialmente en sistemas de archivos como NFS que tienen una semántica de caché débil y, por lo tanto, latencias de IO relativamente altas. Con esto establecido en verdadero, git hará la comparación de índice con los datos del sistema de archivos en paralelo, permitiendo la superposición de IO.

para convertir esta en uso:

git config core.preloadindex true 
+0

Interesante opción. +1 – VonC

+0

¡Genial! Definitivamente voy a intentar esto! – AndreasT

+0

Esto cambió mi ~ 15 segundo 'git st' a ~ 4s en Windows y <1s en Linux ... Esto es increíble. Gracias. – blockloop

6

Como alternativa a cambiar su flujo de trabajo natural, podría trabajar en un clon que viva en un directorio que sea privado para la VM. Luego, ingresa al repositorio en la carpeta compartida (que probablemente sea un repositorio simple) solo cuando desea publicar su trabajo en el entorno externo.

0
git commit <specific-files-and-directories> 

¿quizás? Pero no me gusta la idea de compartir repositorio en el sistema de archivos. Git es la herramienta para compartir el repositorio contenido ya.

+1

Alguna vez codificado una aplicación multiplataforma con, por ejemplo, Eclipse CDT bajo Linux y depurado con Visual Studio bajo win7 con un interruptor de una ventana y el presionando una tecla? Créanme, trabajar a través de barreras del sistema como ese me dio un cosmos de nuevas posibilidades y no estoy dispuesto a renunciar a eso. – AndreasT

Cuestiones relacionadas