gitolite + cgit: хранилища не найдены
Я настроил и настроил gitolite
и хотите настроить cgit
веб-интерфейс к нему.
Проблема:
При просмотре каталога с помощью cgit
Я получаю ошибку:
Репозитории не найдены
Настроить
Когда создается новый репозиторий gitolite
создает соответствующий каталог к нему в /home/git/repositories
автомагически. cgit
настроен для чтения этих репозиториев с помощью:
project-list=/home/git/projects.list
scan-path=/home/git/repositories
Проблема в том, что эти репозитории не кажутся пустыми репозиториями. Если я вместо этого вручную клонировать один из этих репозиториев, используя
git clone --bare user@server:repo
это похоже на работу. Я действительно не хочу делать это вручную каждый раз, когда регистрируется новый репозиторий. Почему репозитории не создаются gitolite
уже голый? Как я могу автоматизировать это?
2 ответа
Оказывается - после попытки проверить это несколько раз - это просто проблема с правами файловой системы. После попытки
chown -R www-data:www-data repositories/repo
заставить владеть моим запущенным пользователем apache cgit
репозиторий отображается в веб-интерфейсе.
Правильное решение - добавить пользователя apache к git
сгруппировать и изменить значение umask
в .gitolite.rc
в
$REPO_UMASK=0027
Примечание: с Gitolite V3 или "g3" это будет ( см. Документ):
$UMASK=0027
Это было похоже на проблему с разрешением, с которой я столкнулся раньше. Я использовал скрипты, чтобы исправить разрешение репозиториев git.
скрипт: fix_perm_cgit.sh
#!/bin/sh
reponame="$1"
if [ ! -d "$reponame" ]; then
echo "missign repo_name"
exit 1
fi
find "$reponame" -type d | while read fn ; do chmod og+rx $fn ; echo "d-> $fn" ; done
find "$reponame" -type f | while read fn ; do chmod og+r $fn ; echo "f-> $fn" ; done