截至目前,對gitweb的掌握還沒達到最終目標,僅僅實現了通過瀏覽器來瀏覽項目,通過git命令仍然未能clone項目。但仍然要記錄下來,主要是因為打算暫時放棄這條路,而所收獲的一些經驗還是要記錄下來。說不定哪天又撿起來了呢。
首先描述下目標:可以按照項目、人員來分別控制項目的讀寫權限。方法應該很多,之前通過git-http-backend的hook可以搞定,gitlab也應該可以搞定。根據已有的資料,gitweb也應該可以搞定。思路之一應該是scriptalias,把git命令的申請路由到git-http-backend或gitolite等目錄下,而普通的瀏覽器的申請直接由gitweb實現:
# 對git庫的各種請求,執行git-http-backend.cgi ScriptAliasMatch \ "(?x)^/(.*/(HEAD | \ info/refs | \ objects/(info/[^/]+ | \ [0-9a-f]{2}/[0-9a-f]{38} | \ pack/pack-[0-9a-f]{40}\.(pack|idx)) | \ git-(upload|receive)-pack))$" \ /usr/lib/git-core/git-http-backend/$1 # 其余的請求,執行gitweb.cgi ScriptAlias / /usr/share/gitweb/gitweb.cgi
另外的思路不打算仔細看了,回去走hooks的路吧。下面附上一些很好的文章:
使用Smart HTTP和Gitweb搭建簡易個人git服務器
git-http-backend(1) Manual Page
