2011-03-26 14 views
5

He creado el siguiente gancho de git para actualizar mi aplicación web cuando los nuevos cambios se envían al repositoriode permisos de archivo incorrecto cuando se utiliza git pull en un gancho

#!/bin/sh 
#Update the server version to HEAD 

echo "Updating webapp..." 
unset $(git rev-parse --local-env-vars) 
(cd /var/www/webapp && git pull -q) 

Sin embargo, si añado nuevos archivos que reciben la permisos incorrectos Solo son legibles por el propietario y no por el grupo ni por otros usuarios. Pero necesito que sean legibles para todos. Localmente tienen los permisos correctos. E incluso cuando ejecuto el gancho manualmente desde el caparazón, funciona correctamente. Solo no funciona cuando el script se llama como un gancho.

¿Alguna idea de cómo solucionarlo?

PS: Estoy utilizando git 1,7

Respuesta

8

Git no permisos de almacén, además del bit de ejecución. Por lo tanto, al finalizar la compra, los archivos se crean con los permisos predeterminados, que dependen de su umask.

Supongo que cuando llama al anzuelo manualmente, tiene un conjunto de umask más liberal. Puede anular la umask con el comando de shell umask. Para sus propósitos, 0022 probablemente esté bien.

+1

Configurando 'umask 0022' en nuestro script de shell inmediatamente antes de que el git pull funcionase perfectamente. ¡Gracias! – joachim

+0

¡Gracias! Funcionó perfectamente – nathancahill