2010-09-29 9 views
9

Questo è correlato a un'altra domanda che ho chiesto di recente su storing a non-bare repository in Dropbox per spostarsi facilmente da un computer all'altro, quindi potrebbe essere utile leggere quella domanda per lo sfondo.Mostra il permesso di un file indicizzato in git

L'essenza è che lo fileMode continua a segnalare una diff per un certo numero di file. Non riesco a trovare un modo per riprodurlo in modo coerente, ma succede spesso. Quello che ho notato è che il file, che ha permessi 644 su entrambe le macchine, riporta spesso un diff da 755 su una delle macchine. Questo mi fa pensare che Git crede che il bit eseguibile sia impostato, ma non riesco a capire se posso effettivamente vedere come Git ha quel bit impostato.

+0

Giusto per essere sicuro di leggerlo correttamente: i file sul disco sono sempre '644', ma i file nei commit sono talvolta' 755'? Cosa dice 'git ls-tree' o' git ls-files -s'? Questo ti dirà i numeri che Git ha registrato. –

+0

Dicono che il bit non è impostato. I file stessi dicono 644, ma indicano un cambiamento che non è mai stato fatto. Hai risposto alla domanda però. Sembra che 'git ls-files' è la risposta alla visualizzazione dello stato del bit eseguibile. Se cambierai il tuo commento in una risposta, la contrassegnerò come tale. –

risposta

12

Per vedere quale git pensa effettivamente ai file in commit e all'indice, utilizzare rispettivamente git ls-tree <tree> e git ls-files -s <path>.

A proposito, sembra che git guardi solo il bit eseguibile e assume 644 per tutto il resto. Guarda create_ce_mode in cache.h se vuoi provare a eseguire il debug di questo strano problema.

Problemi correlati