Установка масок в Git / Gitolite

Я настроил 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-репо (без gitolite):

core.sharedRepository

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

См. Также " Как поделиться репозиторием Git с несколькими пользователями на машине?" Для получения дополнительной информации.

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

Обновление: Этот ответ охватывает Gitolite 2. С Gitolite 3 настройка изменилась с $REPO_UMASK чтобы просто $UMASK,

Другие вопросы по тегам