gitolite添加repo特定的post-receive hook

时间:2016-01-16 19:11:41

标签: git gitolite

我正在尝试使用此文档为特定存储库添加post-receive挂钩:http://gitolite.com/gitolite/cookbook.html

在我的gitolite-admin repo中,我添加了local/hooks/repo-specific/deploy(截至目前只是试图触摸文件),并在option hook.post-receive = deploy中添加了行conf/gitolite.conf

在我的服务器上,我查找了.gitolite.rc,它最初不包含%RC块。 所以我试着添加一个:

%RC = (
    ENABLE => ['repo-specific-hooks'],
    LOCAL_CODE =>  "$rc{GL_ADMIN_BASE}/local"
);

使用钩子将更改推送到repo后,我收到此错误:

remote:                 ***** ABORTING *****
remote:         can't make head or tail of 'option hook.post-receive = deploy'

这是我第一次使用gitolite,所以我很可能会遗漏一些明显的东西。有人有什么想法吗?

2 个答案:

答案 0 :(得分:1)

src/lib/Gitolite/Rc.pm#L501RC部分实际上是.gitolite.rc的内容。

这意味着您不应该添加%RC部分,而应直接添加这些条目。

As documented

  

您始终可以通过运行gitolite print-default-rc来获取当前版本的默认副本。

答案 1 :(得分:1)

您使用的是Gitolite V2.x.仅从V3.6开始支持Repo特定的挂钩。

你正在使用Debian吗?然后,您可能从apt安装了gitolite包。这不是你想要的。使用包gitolite3安装的版本3(至少对于Debian,Ubuntu等)。

这是因为V3与V2不严格兼容。如果你需要升级Gitolite,可以在http://gitolite.com/gitolite/migr.html上找到一个教程。