gitolite + cgit: хранилища не найдены - PullRequest
6 голосов
/ 09 мая 2011

Я настроил и настроил 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 bare ?Как я могу автоматизировать это?

Ответы [ 2 ]

5 голосов
/ 09 мая 2011

Оказывается - после нескольких попыток проверить это - это просто проблема с правами файловой системы. После попытки

chown -R www-data:www-data repositories/repo

для принудительного владения моим пользователем apache, работающим с cgit, хранилище отображается в веб-интерфейсе.

Правильное решение - добавить пользователя apache в группу git и изменить значение umask в .gitolite.rc на

$REPO_UMASK=0027

Примечание: при Gitolite V3 или 'g3' это будет ( см. Документ ):

$UMASK=0027
0 голосов
/ 28 января 2014

Это было похоже на проблему с разрешением, с которой я сталкивался раньше. Я использовал скрипты, чтобы исправить разрешение 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
...