Установка umask в Git/Гитолит

Я установил Git и Gitolite, и в какой-то момент я помню, что видел параметр "umask" в одном из файлов конфигурации. Установлено ли это разрешение для всех файлов, которые я синхронизирует с помощью Git? Это именно то, что мне нужно. Где я могу найти его?

Ответы

Ответ 1

настройки umask в Gitolite существуют для изменения umask для вновь созданных репозиториев (а не файлов, управляемых в версиях этими репозиториями)).
См. gitolite.rc doc:

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

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

Правильный способ справиться с этим состоит в том, чтобы дать этой переменной значение, подобное 0027 (обратите внимание на синтаксис: нужно указать 0), а затем заставить пользователя запускать веб-сервер (apache, www-data, что угодно) член группы git.

Если вы уже установили gitolite, то существующие файлы должны быть исправлены вручную (для umask или 0027, что было бы chmod -R g+rX). Это связано с тем, что UMASK влияет только на разрешения для вновь созданных файлов, а не на существующих.

Эти настройки аналогичны тем, которые используются при создании непосредственно репозитория git (без гитолита):

core.sharedRepository

Когда group (или true), репозиторий становится доступным между несколькими пользователями в группе (убедитесь, что все файлы и объекты записаны на группы).
Когда all (или world или everybody), репозиторий будет доступен для чтения всем пользователям, кроме того, чтобы быть group-shareable.
Когда UMASK (или false), git будет использовать разрешения, сообщенные UMASK.

См. также "Как добавить общий репозиторий git с несколькими пользователями на машине?" для более подробной информации.

Если у вас есть конфликты между платформами относительно разрешений, у вас также есть опция "указать git игнорировать изменения прав доступа к файлам" (git config core.fileMode false).

Обновление: этот ответ охватывает гитолит 2. С гитолит 3 настройка изменилась с $REPO_UMASK на $UMASK.