如何将git-http-backend作为http服务器打开?

时间:2018-01-27 03:41:42

标签: git

Git official document显示了通过http与apache和git-http-backend使用git服务器的方式 我希望通过http在我的程序中与git-http-backend直接交互。

它就像apache代理所做的那样但是我需要从git客户端控制更多的东西,例如拒绝客户端pull的用户名和存储库目录的路径他要求的。

如何直接使用git-http-backend作为http服务?

2 个答案:

答案 0 :(得分:1)

git-http-backend在文档中描述为CGI程序。由于CGI程序本身并不能说HTTP,因此您必须使用CGI协议与之交谈(这是一个涉及环境变量和stdin和stdout的进程间通信协议)或者将其连接到HTTP服务器,例如作为Apache。

名称可能令人困惑,但这个" HTTP后端" 在HTTP服务器后面

答案 1 :(得分:0)

您可以在docs/git-http-backend阅读其文档,并在http-backend.ctested here)中查看其来源。

它是一个Common Gateway Interface (CGI),它由一个监听器调用,就像一个http服务器,还有任何其他监听器(!),如SSH。

请参阅Gitolite(授权层),它正是这样做的:因为它被称为git-xxx(此处为:git-hhtp-backend),您可以调用:git http-backend:是its gitolite-shell does

由于该后端依次调用git services(git-upload-pack,git-receive-pack,objects / info / packs,...),你可以直接执行git-http-backend所做的事情。这也是gitolite implements here