Il git-cache-meta
menzionato nella domanda SO "git - come recuperare i permessi del file git pensa che il file dovrebbe essere?" (e le FAQ di git) è l'approccio più diretto.
L'idea è di memorizzare in un .git_cache_meta
file i permessi dei file e delle directory.
È un file separato non versionato direttamente nel repository Git.
Ecco perché l'utilizzo è:
$ git bundle create mybundle.bdl master; git-cache-meta --store
$ scp mybundle.bdl .git_cache_meta machine2:
#then on machine2:
$ git init; git pull mybundle.bdl master; git-cache-meta --apply
Quindi tu:
- raggruppa il tuo repository e salva i permessi dei file associati.
- copia questi due file sul server remoto
- ripristina lì il repository e applica l'autorizzazione
Git è il sistema di controllo della versione, creato per lo sviluppo del software, quindi dall'intero set di modalità e autorizzazioni memorizza solo bit eseguibili (per file ordinari) e bit di collegamento simbolico. Se vuoi memorizzare i permessi completi, hai bisogno di uno strumento di terze parti, come git-cache-meta
(menzionato da VonC), o Metastore (usato da etckeeper). Oppure puoi usare IsiSetup, che IIRC usa git come backend.
Consulta la pagina Interfacce, frontend e strumenti su Git Wiki.