zi663227 发表于 2018-1-12 17:38:13

再谈git的http服务

  截至目前,对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/[^/]+ | \
  
{2}/{38} | \
  
pack/pack-{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
  git官网关于gitweb的手册
页: [1]
查看完整版本: 再谈git的http服务