In che modo Git gestisce l’authorization per le cartelle?

Sto usando git versione 1.5.6.3, e sembra che Git non si accorga delle modifiche alla modalità di una cartella

#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) 

Cosa significa 04000 ?

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

Questo comportamento normale?

Come posso tenere traccia delle modifiche alla modalità cartella?

L’unico bit ‘permessi’ che git tracks è il bit eseguibile per i file, il resto dei bit della modalità descrivono quale tipo di object file system l’object in ogni albero git è. git supporta file e symlink (BLOB), directory (alberi) e sottomoduli (commit).

git è progettato per aiutare a tracciare il codice sorgente su macchine diverse. I bit di authorization dipendono dal mapping di utenti e gruppi tra macchine. Negli ambienti distribuiti in cui queste mappature non esistono, i bit di tracciamento dei permessi di solito finiscono per ostacolare le cose piuttosto che aiutare qualcosa.

Se è necessario tenere traccia di più attributi del file system, quali tracce git nativamente si possono prendere in considerazione e strumenti di estensione come etckeeper .