2010-09-29 17 views
9

Ceci est lié à une autre question que j'ai récemment posée à propos de storing a non-bare repository in Dropbox pour faciliter les déplacements entre ordinateurs, il peut donc être utile de lire cette question en arrière-plan.Afficher la permission d'un fichier indexé dans git

L'essentiel est que le fileMode continue de signaler un diff pour un certain nombre de fichiers. Je ne peux pas trouver un moyen de le reproduire de manière cohérente, mais cela arrive fréquemment. Ce que j'ai remarqué, c'est que le fichier, qui a 644 permissions sur les deux machines, rapporte souvent un diff de 755 sur l'une des machines. Cela me fait penser que Git pense que le bit exécutable est défini, mais je ne peux pas savoir si je peux réellement voir comment Git a ce bit mis.

+0

Juste pour m'assurer que je lis ceci correctement: Les dossiers sur le disque sont toujours '644', mais les dossiers dans les commits sont quelquefois' 755'? Que dit 'git ls-tree' ou' git ls-files -s'? Cela vous dira les chiffres enregistrés par git. –

+0

Ils disent que le bit est désactivé. Les fichiers eux-mêmes disent 644, mais indiquent un changement qui n'a jamais été fait. Vous avez répondu à la question cependant. Il semble que 'git ls-files' est la réponse à l'affichage de l'état du bit exécutable. Si vous changez votre commentaire en réponse, je le marquerai comme tel. –

Répondre

12

Pour voir ce que git pense réellement de vos fichiers dans commits et de l'index, utilisez git ls-tree <tree> et git ls-files -s <path> respectivement. Par ailleurs, il semble que git ne regarde que le bit exécutable, et assume 644 pour tout le reste. Regardez create_ce_mode in cache.h si vous voulez essayer de déboguer ce problème étrange.