2011-03-28 71 views
2

我正在使用Gitolite來管理我的git存儲庫。我還使用第三方Web應用程序來顯示存儲庫。Git sharedRepository的權限問題

但是,每次我做git push --all [email protected]:myproject第三方Web應用程序都無法訪問存儲庫文件。所以我需要每次運行chmod go+rx -R /path/to/the/repository/folder來查看存儲庫。

我已經設置了git config core.sharedRepository all但仍然不記得git push之後的權限。

我該如何解決這個問題?

回答

2

您可以定義hook to your gitolite environment以便從gitolite管理的裸露回購庫更新非裸POS(使用正確的ACL)。

只要你不使用the update hook(在Gitolite V3),您可以定義一個post-receive鉤中,你會做這些任務。

話雖這麼說,也請檢查您的gitolite.rc的variable REPO_UMASKUMASK在這個問題上有任何影響:

$UMASK,八進制,默認0077

是gitolite使用默認UMASK使所有的回購協議及其內容具有rwx------權限。
想要運行的人gitweb意識到這是不行的。
解決此問題的正確方法是將此變量更改爲0027(其中獲取您rwxr-x---),然後添加運行Web服務器的apache或httpd用戶作爲'gitolite'組的成員。

請注意語法;領先的0是必需的。如果在安裝完成後更改它,則還必須執行一些chmod的操作,以調整已創建的文件和目錄的權限。

(注:REPO_MASKUMASKGitoliteV3 or 'g3'