45 votes

Comment git gère-t-il les droits sur les dossiers ?

J'utilise la version 1.5.6.3 de git, et il semble que git ne remarque pas les changements de mode d'un dossier.

#create a test repository with a folder with 777 mode
:~$ mkdir -p test/folder
:~$ touch test/folder/dummy.txt
:~$ cd test
:~/test$ chmod 777 folder/

#init git repository
:~/test$ git init
Initialized empty Git repository in ~/test/.git/
:~/test$ git add .
:~/test$ git commit -m 'commit a directory'
Created initial commit 9b6b21a: commit a directory
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 folder/dummy.txt

#change folder permission to 744
:~/test$ chmod 744 folder/
:~/test$ git status 
# On branch master
nothing to commit (working directory clean)

Qu'est-ce que 04000 représentent-ils ?

:~/test$ git ls-tree HEAD folder
040000 tree 726c1d5f0155771348ea2daee6239791f1cd7731    folder

Est-ce un comportement normal ?

Comment puis-je suivre les changements de mode de dossier ?

70voto

Charles Bailey Points 244082

Le seul élément de "permissions" qui git tracks est le bit exécutable pour les fichiers, le reste des bits de mode décrit quel type d'objet de système de fichiers est l'objet dans chaque arbre git. git supporte les fichiers et les liens symboliques (blobs), les répertoires (arbres) et les sous-modules (commits).

git est conçu pour aider à suivre le code source sur différentes machines. Les bits de permission dépendent des mappages d'utilisateurs et de groupes entre les machines. Dans les environnements distribués où ces mappages n'existent pas, le suivi des bits de permission finit généralement par entraver les choses plutôt que de les aider.

Si vous avez besoin de suivre plus d'attributs de système de fichiers que ce que l'option git en natif, vous pouvez envisager un outil d'extension tel que etckeeper .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X