Apache DocumentRoot的Gitolite本地工作副本

时间:2011-05-02 01:17:17

标签: git version-control gitolite working-copy

我有一个使用git和gitolite的系统设置。一切都运作良好,除了我希望我的结构是这样的:

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

我在开发服务器上有一个repo设置,它已成功克隆到本地环境。现在,我需要的是开发服务器上的本地文件系统工作副本,但我不知道如何使用gitolite执行此操作。

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

工作正常,直到我尝试推/拉,此时我得到了这个:

remote: ENV GL_RC not set
remote: BEGIN failed--compilation aborted at hooks/update line 20.
remote: error: hook declined to update refs/heads/master

关于如何使用gitolite进行此操作的任何想法?

2 个答案:

答案 0 :(得分:8)

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

您应该在开发服务器上使用gitolite兼容地址进行第二次克隆,例如:

git clone git@gitoliteserver:myrepo.git

第二个repo能够推送/拔出gitolite服务器,同时在你所使用的开发服务器上提供“本地文件系统工作副本”。

答案 1 :(得分:3)

如果您需要使用local protocol,您只需将GL_BYPASS_UPDATE_HOOK环境变量设置为1

gorgo@somegitoliteserver:~/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