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
Другие вопросы по тегам