2011-05-02 120 views
4

我有一个系统设置与git和gitolite。一切工作正常,但我希望我的结构是这样的:Gitolite本地工作副本Apache DocumentRoot

当地环境 - >开发服务器 - >生产服务器

我开发服务器上回购的设置,它的成功克隆到了当地环境。现在,我需要的是开发服务器上的本地文件系统工作副本,但我不确定如何使用gitolite来完成此操作。

git clone /home/gitolote/repositories/myrepo.git 

正常工作,直到我试图推/拉,在这一点上,我得到这个:

​​

如何与gitolite做到这一点任何想法?

回答

8

您正在使用local protocol作为您的克隆,这意味着您完全绕过gitolite(gitolite脚本通过ssh forced command调用)。

你应该让第二个克隆你的开发服务器上,使用像gitolite兼容地址:

git clone [email protected]:myrepo.git 

这第二回购将能够推/拉/从gitolite服务器,同时提供“本地文件系统工作副本“在您所在的开发服务器上。

+0

感谢。为本地用户帐户设置公钥是奇怪的,但最终都是成功的。 – 2011-05-02 07:47:51

3

如果需要使用local protocol,所有你需要的是设置GL_BYPASS_UPDATE_HOOK环境变量1

[email protected]:~/testing$ GL_BYPASS_UPDATE_HOOK=1 git push 
Counting objects: 3, done. 
Delta compression using up to 3 threads. 
Compressing objects: 100% (2/2), done. 
Writing objects: 100% (2/2), 234 bytes, done. 
Total 2 (delta 1), reused 0 (delta 0) 
Unpacking objects: 100% (2/2), done. 
To file:///home/gitolite/repositories/testing.git/ 
96be337..ab5ca6d master -> master