我有一个使用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进行此操作的任何想法?
答案 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