Неправильное разрешение файла при использовании git pull in hook - PullRequest
5 голосов
/ 26 марта 2011

Я создал следующую ловушку git для обновления моего веб-приложения, когда новые изменения помещаются в хранилище

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

Однако, если я добавлю новые файлы, они получат неправильные разрешения. Они доступны для чтения только владельцу, а не группе или другим пользователям. Но мне нужно, чтобы они были понятны всем. Локально они имеют правильные биты прав доступа. И даже когда я запускаю крючок вручную из оболочки, он работает правильно. Он не работает только когда скрипт вызывается как ловушка.

Есть идеи, как это исправить?

PS: я использую git 1.7

1 Ответ

8 голосов
/ 26 марта 2011

Git не хранит разрешения, кроме исполняемого бита.Итак, при оформлении заказа файлы создаются с разрешениями по умолчанию, которые зависят от вашего umask .

Я предполагаю, что когда вы вызываете ловушку вручную, у вас есть более либеральный набор umask.Вы можете переопределить umask с помощью команды оболочки umask.Для ваших целей, 0022, вероятно, хорошо.

...