5

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

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

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

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

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

4

2 回答 2

4

围绕这个的文档有点混乱,所以希望这能帮助其他人尝试使用 gitolite v3 获得链式更新钩子。

我上面所做的一切都是正确的,缺少的部分是我的 update.secondary 脚本需要驻留。

在 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

于 2012-12-14T02:38:55.520 回答
0

要添加到(赞成的)OP nathasm答案LOCAL_CODE,我在文件中使用变量没有问题,如“自定义 gitolite.gitolite.rc ”的“备用位置”部分所述。

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

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

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
于 2012-12-14T06:20:10.610 回答