我用Apache和腳本檢索我的組,設置好gitolite。 我可以有效地控制誰可以進入存儲庫,但誰不能讀取。目前,如果我沒有在存儲庫上設置R = @all規則,則沒有人可以讀取它,即使是其他規則匹配的人也是如此。刪除R @all後在gitolite中找不到test/info/ref規則
我有以下gitolite配置:
repo testing
R = @git-reader-test
R = olivier
# R = @all #Will work if I uncomment this line
RW+ = @developers
我wapper腳本中調用gitolite具有下面的代碼
echo "Entering gitolite wrapper" >> /home/dev_tools/git/gitauth.log
echo "user: $REMOTE_USER" >> /home/dev_tools/git/gitauth.log
echo "groups: $HTTP_REMOTE_USER_GROUPS" >> /home/dev_tools/git/gitauth.log
exec /home/dev_tools/git/bin/gitolite-shell $REMOTE_USER 2>&1 |tee -a /home/dev_tools/git/gitauth.log
,輸出:
Entering gitolite wrapper
user: olivier
groups: developers ...
Status: 404 Not Found
Expires: Fri, 01 Jan 1980 00:00:00 GMT
Pragma: no-cache
Cache-Control: no-cache, max-age=0, must-revalidate
Repository not exported: '/home/dev_tools/git/repositories/testing'
所以我的團體,甚至我的用戶名匹配R規則,但我被404錯誤拒絕,但如果我取消註釋t他R = @all
規則我將能夠取回我的回購沒有任何問題。
我得到git fetch
的錯誤是
fatal: http://[email protected]/testing/info/refs not found: did you run git update-server-info on the server?
以及相應的gitolite日誌:
2012-10-11.15:52:10 26728 access(testing, olivier, R, 'any'),-> refs/.*
2012-10-11.15:52:10 26728 trigger,Writable,access_1,ACCESS_1,testing,olivier,R,any,refs/.*
2012-10-11.15:52:10 26728 pre_git testing olivier R any -> refs/.*
2012-10-11.15:52:10 26728 system,git,http-backend
2012-10-11.15:52:10 26728 END
你有任何想法,爲什麼出現這種情況?
也許問題有缺少'project.list'? (如http://serverfault.com/questions/419102/gitweb-document-root-with-gitolite) – VonC