使用gitolite VREF进行更新挂钩

时间:2012-12-13 23:51:14

标签: git gitolite

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

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

我在/home/git/.gitolite.rc

中添加了以下内容
LOCAL_CODE                  => "$ENV{HOME}/.gitolite/our_hooks",

在my_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进行额外的更新检查?

2 个答案:

答案 0 :(得分:4)

围绕这个的文档有点令人困惑,所以希望这将有助于其他人尝试使用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

答案 1 :(得分:0)

要添加到(已投票)OP nathasmanswer,我在LOCAL_CODE文件中使用.gitolite.rc变量没有问题,如“ “customising gitolite”的备用位置。

但是,我从未设法使用环境变量。

换句话说,这不起作用:

LOCAL_CODE                  => "$ENV{HOME}/.gitolite/our_hooks",

但这会:

LOCAL_CODE                  => "/home/git/.gitolite/our_hooks",

使用完整路径意味着将识别/home/git/.gitolite/our_hooks/VREF中声明的任何VREF或钩子

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