Spesso quando faccio un checkout di un ramo diverso, o un reset, mi metterò 'permesso negato' errori da Windows per uno a una decina di file - ma la particolare i file variano da corsa a corsa. Ecco l'output di un test che ho appena fatto, con GIT_TRACE = 1. La traccia aggiunto solo l'una linea prima che il messaggio di errore:git checkout e reimpostare su Windows mostra di tanto in tanto file casuali sono cambiati
$ git checkout master trace: built-in: git 'checkout' 'master' error: git checkout-index: unable to create file dotnet/src/myfile.cs (Permission denied) D dotnet/src/myfile.cs Switched to branch "master"
Sono abbastanza sicuro che questo è un po 'di corsa con un programma antivirus o un altro servizio di indicizzazione sulla mia macchina. Se la gara persistesse, potrei usare sysinternals per vedere quale processo ha il gestore di file aperto. Tuttavia, accade molto rapidamente e non sono a conoscenza di uno strumento che mi mostrerà questo conflitto. Sorprendentemente, non ho trovato nessuno che descrivesse un comportamento simile. Come posso interrompere questi errori o diagnosticare ulteriormente il problema?
che sto in particolare alla ricerca di porre fine alla corsa di accesso ai file, identificando qualsiasi processo sta facendo l'accesso simultaneo. Quindi suggerimenti per uno strumento che mostra quale processo ha un file bloccato quando una modifica è negata sarebbe molto utile. Sono a conoscenza di "unlocker" e strumenti simili che mi mostreranno quale processo trattiene un file bloccato per un periodo di tempo. Questo non funziona per questo problema, perché il processo mantiene il file bloccato per un periodo molto breve. Quindi lo strumento deve raccogliere i dati appropriati senza il mio intervento, perché sono troppo lento.
Nota anche il commento # 16 lì. Mettere il repository su una partizione non di sistema risolve anche il problema. http://code.google.com/p/msysgit/issues/detail?id=320#c16 –