Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用gitolite VREFs进行更新挂钩_Git_Gitolite - Fatal编程技术网

使用gitolite VREFs进行更新挂钩

使用gitolite VREFs进行更新挂钩,git,gitolite,Git,Gitolite,我正在尝试从gitolite的v2迁移到v3。执行服务器端提交消息检查的旧方法是将检查放在myrepo.git/hooks/update.secondary中特定于repo的钩子中 在gitolite的v3中,他们建议将支票放入VREF中。文档有点混乱,我希望得到澄清 我在/home/git/.gitolite.rc中添加了以下内容 LOCAL_CODE => "$ENV{HOME}/.gitolite/our_hooks", 在我的目录中,我创建了一个

我正在尝试从gitolite的v2迁移到v3。执行服务器端提交消息检查的旧方法是将检查放在myrepo.git/hooks/update.secondary中特定于repo的钩子中

在gitolite的v3中,他们建议将支票放入VREF中。文档有点混乱,我希望得到澄清

我在/home/git/.gitolite.rc中添加了以下内容

LOCAL_CODE                  => "$ENV{HOME}/.gitolite/our_hooks",
在我的目录中,我创建了一个VREF文件夹,并将我的旧update.secondary脚本放在其中。在我的gitolite admin/conf/gitolite.conf文件中,我将以下内容添加到希望脚本在其上执行的存储库中:

repo myrepo
  RW = @my_developers
  - VREF/update.secondary = @my_developers
当我尝试推送时,会收到一个通知,即找不到VREF/update.secondary。如果我换成

repo myrepo
  RW = @my_developers
  - /home/git/.gitolite/our_hooks/VREF/update.secondary = @my_developers
我没有收到任何抱怨,但钩子似乎一点也没有动


我是否错过了如何使用gitolite运行额外更新检查的机会?

关于这一点的文档有点混乱,因此希望这能帮助其他尝试使用gitolite v3获得链接更新挂钩的人

我上面所做的一切都是正确的,缺少的部分是我的更新。需要驻留辅助脚本

在gitolite admin/conf/gitolite.conf中,配置应如下所示:

repo myrepo
  RW = @my_developers
  - VREF/update.secondary = @my_developers
然后在GL_BINDIR目录中有一个VREF目录。将可执行文件update.secondary文件放在该目录中

GL_BINDIR是包含为了运行而运行的gitolite二进制文件的目录:
gitolite setup

要添加到(向上投票),我可以在my
.gitolite.rc
文件中使用
LOCAL_code
变量,如“”的“备用位置”部分所述

然而,我从未设法使用环境变量

换句话说,这是行不通的:

LOCAL_CODE                  => "$ENV{HOME}/.gitolite/our_hooks",
但这将:

LOCAL_CODE                  => "/home/git/.gitolite/our_hooks",
使用完整路径意味着在/home/git/.gitolite/our_hooks/VREF中声明的任何VREF或hooks都将被识别

repo myrepo
  RW = @my_developers
  - VREF/update.secondary = @my_developers

谢谢我在VREFs目录中使用了一个符号链接到hooks/common中的update.secondary,然后在每个repo中搜索并运行update.secondary。应该是默认功能IMHO。但是如何为每个项目运行单个钩子呢?如何从gitolite管理库管理它?提前谢谢