2010-09-29 8 views
9

Esto se relaciona con otra pregunta que hice recientemente sobre storing a non-bare repository in Dropbox para facilitar el movimiento entre computadoras, por lo que puede ser útil leer esa pregunta para el fondo.Mostrar el permiso de un archivo indexado en git

Lo esencial es que el fileMode sigue informando un diff para una cierta cantidad de archivos. No puedo encontrar una manera de reproducirlo constantemente, pero sucede con frecuencia. Lo que noté es que el archivo, que tiene 644 permisos en ambas máquinas, a menudo informa una diferencia de 755 en una de las máquinas. Esto me hace pensar que Git cree que el bit ejecutable está configurado, pero no puedo determinar si realmente puedo ver cómo Git tiene ese bit establecido.

+0

Solo para asegurarse de que estoy leyendo esto correctamente: Los archivos en el disco son siempre '644', pero los archivos en los commits son a veces' 755'? ¿Qué dice 'git ls-tree' o' git ls-files -s'? Eso te dirá los números que git ha grabado. –

+0

Dicen que el bit está desarmado. Los archivos dicen 644, pero indican un cambio que nunca se hizo. Sin embargo, respondiste la pregunta. Parece que 'git ls-files' es la respuesta para mostrar el estado del bit ejecutable. Si cambia su comentario a una respuesta, lo marcaré como tal. –

Respuesta

12

Para ver qué piensa realmente git sobre sus archivos en commits y el índice, use git ls-tree <tree> y git ls-files -s <path> respectivamente.

Por cierto, parece que git solo mira el bit ejecutable, y asume 644 para todo lo demás. Mira create_ce_mode in cache.h si quieres intentar depurar este extraño problema.

Cuestiones relacionadas