2011-08-16 15 views
15

He configurado Git y Gitolite, y en algún momento recuerdo haber visto una configuración de "umask" en uno de los archivos de configuración. ¿Establece esto los permisos para todos los archivos que sincronizo usando Git? Eso es exactamente lo que necesito. ¿Dónde puedo encontrarlo?Configuración de umask en Git/Gitolite

Respuesta

20

umask settings in Gitolite están ahí para cambiar umask para repos recientemente creados (y no sobre los archivos administrados en versiones por esos repos).
Ver gitolite.rc doc:

$REPO_UMASK, octal, por defecto 0077

El valor predeterminado UMASK que gitolite usos hace que todos los repositorios y su contenido tienen rwx------ permisos. Las personas que quieren ejecutar gitweb se dan cuenta de que esto no funcionará.

La forma correcta de tratar con esto es dar a esta variable un valor como 0027 (tenga en cuenta la sintaxis: se requiere el 0 inicial), y luego hacer que el usuario que ejecuta el servidor web (Apache, www-data, lo que sea) un miembro de el grupo 'git'.

Si ya ha instalado gitolite, los archivos existentes deberán repararse manualmente (para una umask o 0027, que sería chmod -R g+rX). Esto se debe a que umask solo afecta los permisos en los archivos recién creados, no los existentes.

Esta configuración es similar a la usada cuando se crea directamente un repositorio git (sin gitolite):

core.sharedRepository 

Cuando group (o true), el repositorio está hecho compartible entre varios usuarios en un grupo (asegurándose de que todos los archivos y objetos puedan escribirse en grupo).
Cuando all (o world o everybody), el repositorio será legible por todos los usuarios, además de ser group-shareable.
Cuando umask (o false), git utilizará los permisos informados por umask.

Consulte también "How do I share a Git repository with multiple users on a machine?" para obtener más información.

Cuando tiene conflictos entre plataformas en relación con los permisos, también tiene la opción de "instruct git to ignore file permissions changes" (git config core.fileMode false).

Actualización: Esta respuesta cubre gitolite 2. Con gitolite 3 la configuración cambió de $REPO_UMASK a solo $UMASK.

Cuestiones relacionadas