【问题标题】:Gitolite local working copy for Apache DocumentRootApache DocumentRoot 的 Gitolite 本地工作副本
【发布时间】:2011-05-02 01:17:17
【问题描述】:

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

【问题讨论】:

    标签: git version-control gitolite working-copy


    【解决方案1】:

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

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

    git clone git@gitoliteserver:myrepo.git
    

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

    【讨论】:

    • 谢谢。为本地用户帐户设置公钥很奇怪,但最终都解决了。
    【解决方案2】:

    如果您需要使用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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-14
      • 1970-01-01
      • 1970-01-01
      • 2013-07-20
      • 2017-11-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多