2010-05-20 33 views
22

Ho un grande repository in una cartella condivisa. Io uso git da una VM su quella cartella. Tutto funziona bene, ma il repository è grande e git's cerca in tutte le directory e file quando il commit è lento. Non riesco a spostare questo repository fuori dalla cartella condivisa.git posso accelerare il commit?

ho cercato di git add file specifici e directory, ma quando lo faccio git commit -m "something" va ancora fuori su di essa la Oddyssey attraverso l'albero delle directory.

Posso eseguire commit che ignorano il resto dell'albero?

risposta

35

Si può provare ad abilitare l'opzione preloadindex, descritta nella git-config man page:

core.preloadindex

Abilita precarico indice parallelo per operazioni come git diff

Questo può accelerare le operazioni come git diff e git status specialmente su filesystem come NFS che hanno una semantica caching debole e quindi latenze di IO relativamente alte. Con questo set impostato su true, git eseguirà il confronto dell'indice con i dati del filesystem in parallelo, consentendo di sovrapporre gli IO.

Per attivare questo su uso:

git config core.preloadindex true 
+0

Opzione interessante. +1 – VonC

+0

Fantastico! Proverò sicuramente questo! – AndreasT

+0

Questo ha cambiato il mio ~ 15 secondi 'git st' in basso a ~ 4s in Windows e <1s in Linux ... Questo è fantastico. Grazie. – blockloop

6

In alternativa alla modifica del flusso di lavoro naturale, è possibile lavorare su un clone che vive in una directory privata della VM. Quindi si spinge al repository sulla cartella condivisa (che può probabilmente essere un repository nudo) solo quando si desidera pubblicare il proprio lavoro nell'ambiente esterno.

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

forse? Ma non mi piace l'idea di condividere il repository sul filesystem. Git è lo strumento per condividere il repository contenuto già.

+1

mai codificato un'applicazione cross-platform con, diciamo, Eclissi CDT sotto Linux e il debug con Visual Studio sotto win7 con un interruttore di una finestra e il premendo un tasto? Credetemi, lavorare su barriere di sistema come questa mi ha dato un cosmo di nuove possibilità e non sono disposto a rinunciarvi. – AndreasT