Проблемы с разрешениями в Git sharedRepository - PullRequest
2 голосов
/ 28 марта 2011

Я использую Gitolite для управления своими git-репозиториями.И я также использую стороннее веб-приложение для отображения репозиториев.

Однако каждый раз, когда я делаю git push --all git@myserver.com:myproject, стороннее веб-приложение не может иметь доступ к файлам репозитория.Поэтому мне нужно каждый раз запускать chmod go+rx -R /path/to/the/repository/folder, чтобы увидеть репозиторий.

Я установил git config core.sharedRepository all, но все еще не запоминаю разрешения после git push.

Как мне решить эту проблему?проблема

1 Ответ

2 голосов
/ 28 марта 2011

Вы можете определить хук к вашей среде gitolite , чтобы обновить не-голую позицию (с правильным ACL) из вашего голого репо, управляемого gitolite.

Пока вы не используете хук update (в Gitolite V3), вы можете определить хук post-receive, в котором вы будете выполнять эти задачи.

При этом проверьте также, имеет ли какое-либо отношение к этой проблеме переменная REPO_UMASK UMASK в вашем gitolite.rc:

$UMASK, восьмеричное, по умолчанию 0077

По умолчанию UMASK, который использует gitolite, все репозитории и их содержимое имеют разрешения rwx------.
Люди, которые хотят запустить gitweb, понимают, что это не сработает.
Правильный способ справиться с этим - изменить эту переменную на 0027 (которая дает вам rwxr-x---), а затем добавить пользователя apache или httpd, работающего с веб-сервером, в качестве члена группы 'gitolite'.

Обратите внимание на синтаксис; ведущий 0 требуется. Если вы измените его после завершения установки, вам придется также сделать некоторые chmod, чтобы настроить разрешения для файлов и каталогов, которые уже были созданы.

(Примечание: REPO_MASK получил UMASK с GitoliteV3 или 'g3' )

...