使用gitolite VREFs进行更新挂钩
我正在尝试从gitolite的v2迁移到v3。执行服务器端提交消息检查的旧方法是将检查放在myrepo.git/hooks/update.secondary中特定于repo的钩子中 在gitolite的v3中,他们建议将支票放入VREF中。文档有点混乱,我希望得到澄清 我在/home/git/.gitolite.rc中添加了以下内容使用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", 在我的目录中,我创建了一个
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管理库管理它?提前谢谢