如何在gitolite中安装挂钩

时间:2011-08-29 20:49:57

标签: git githooks gitolite

我已阅读所有the documentation about hookssimilar questionsa lot of code但我无法追踪我的程序中的错误。我需要在我的gitolite安装中安装一个简单的钩子(在CentOS上用rpm包制作),所以这就是我做的:

安装gitolite(不久前):

  1. 安装了rpm包
  2. # su - gitolite
  3. $ gl-setup /tmp/fabio.pub(作为gitolite用户)
  4. 现在安装钩子:

    1. 使用post-update~gitolite/.gitolite/hooks/common上的摘要代码创建了一个示例文件chmod +x
    2. 再次gl-setup /tmp/fabio.pub
    3. 再次1.5.9.1

      但是没有发生任何事情,最新命令的退出状态为0,但钩子文件未在任何存储库中进行符号链接。那我的手术有什么问题?我错过了什么吗?

      奖金问题:

      1. 如果我理解了文档,我的程序是正确的吗?即我每次更新任何钩子时都应该运行gl-setup吗?
      2. 通过这种方式,我在这个gitolite安装下的每个存储库中安装共享挂钩,是吗?我可以手动将挂钩作为符号链接安装到某个地方,还是仅仅为给定的存储库安装可执行脚本?我应该在给定存储库的hook文件夹中手动执行此操作吗?我是否应该关注挂钩冲突(即,单个存储库的任何自定义挂钩是否阻止任何其他具有相同名称的共享挂钩)?
      3. 不知道这是否重要,我的gitolite版本是{{1}}。

3 个答案:

答案 0 :(得分:1)

在Gitolite v3中,您可以选择将LOCAL_CODE变量放在.gitolite.rc中的钩子的位置。有关更多选项,请参阅文件源(例如,启用每个repo自定义挂钩)

然后将钩子放在指定的目录中,使它们可执行并运行gitolite setup --hooks-only

答案 1 :(得分:0)

您需要在目录中添加update.secondary挂钩,然后使用gl-easyinstall重新部署。看一下gitolite附带的更新钩子。你会看到接近结束时,它会调用update.secondary。如果您提供,它将起作用。

答案 2 :(得分:0)

我刚刚发现如果我在/usr/share/gitolite/hooks/common/中复制我的钩子样本,它将由gl-setup进行符号链接。也许在这个包中$GL_ADMINDIR变量由于某种原因没有设置。两个奖金问题仍然存在......