4

我有一个带有 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 做到这一点的任何想法?

4

2 回答 2

8

您正在为您的克隆使用本地协议,这意味着您完全绕过了 gitolite(gitolite 脚本是通过ssh 强制命令调用的)。

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

git clone git@gitoliteserver:myrepo.git

第二个存储库将能够向/从 gitolite 服务器推/拉,同时在您所追求的开发服务器上提供“本地文件系统工作副本”。

于 2011-05-02T05:15:03.353 回答
3

如果您需要使用本地协议,您只需将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
于 2013-06-06T07:24:15.703 回答