Git est en train de changer mes permissions du fichier quand je pousse vers le serveur

J'utilise git pour gérer un site web sur un serveur.

J'ai un dépôt local indiqué ci-dessous

local@workstation:myapp$ ls -l | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}'
total 16
755 drwxr-xr-x@ 18 thomas  staff   612 Jun 13 15:35 application
755 drwxr-xr-x@ 11 thomas  staff   374 Jun 12 16:25 assets
644 -rw-r--r--@  1 thomas  staff  6399 Jun 22 11:45 index.php
755 drwxr-xr-x@ 10 thomas  staff   340 May 14 15:22 system

J'ai un dépôt nu sur le serveur qui utilise post-receive au point le repo en face de apache. Apache public contenu des dossiers sont au-dessous de pas le dépôt nu.

root@server:/srv/public/myapp# ls -l | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}'
total 20
700 drwx------ 15 root root 4096 Jun 27 11:31 application
700 drwx------ 10 root root 4096 Jun 27 11:31 assets
600 -rw-------  1 root root 6399 Jun 27 11:31 index.php
700 drwx------  8 root root 4096 Jun 27 11:31 system

Ce qui provoque le chaos dans mon code sur le serveur.

Comment puis-je résoudre ce problème? Je suis l'aide de gitolite si cela fait une différence.

git fichier de configuration de serveur

[core]
        repositoryformatversion = 0
        filemode = true
        bare = true
  • Avez-vous vérifié le umask de l'utilisateur utilisé pour la création de /srv/public/myapp repo? Ce qui est dans le git config? Tout ce qui est lié avec le fichier en mode a changé là-bas?
  • Je me suis amusé avec le mode fichier et je l'ai eu à travailler à un moment, maintenant, c'est true. Pas sûr de ce que "le démasquer" est. J'ai un utilisateurs de git que j'ai le programme d'installation avec gitolite. J'ai mis à jour le post.
  • Voir cette question.
InformationsquelleAutor ThomasReggi | 2012-06-27