6

セットアップと構成が完了し、 Web インターフェイスを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 新しいリポジトリがチェックインされるたびに手動でこれを行いたくありません。これを自動化するにはどうすればよいですか?

4

2 に答える 2

5

何度か検証を試みた結果、これは単なるファイル システムの権限の問題であることが判明しました。試した後

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

実行中のApacheユーザーに所有権を強制するcgitには、リポジトリがWebインターフェースに表示されます。

適切な解決策は、apache ユーザーをgitグループに追加し、値umaskを次の.gitolite.rcように変更することです。

$REPO_UMASK=0027

注: Gitolite V3 または 'g3' の場合、次のようになります (ドキュメントを参照):

$UMASK=0027
于 2011-05-09T17:08:21.887 に答える
0

以前に遭遇した許可の問題と似ていました。スクリプトを使用して、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
于 2014-01-28T05:43:11.510 に答える