9

我已经阅读了有关 hooks类似 问题大量代码的所有文档,但我无法跟踪我的程序中的错误在哪里。我需要在我的 gitolite 安装中安装一个简单的钩子(在 CentOS 上使用 rpm 包制作),所以这就是我所做的:

要安装 gitolite(前一段时间):

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

现在安装钩子:

  1. 创建了一个post-update包含钩子代码~gitolite/.gitolite/hooks/common的示例chmod +x文件
  2. 如此处所述gl-setup /tmp/fabio.pub再次运行

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

奖励问题:

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

不知道这是否重要,我的 gitolite 版本是1.5.9.1.

4

3 回答 3

1

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

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

于 2014-06-28T18:22:01.750 回答
0

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

于 2011-08-29T21:26:17.863 回答
0

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

于 2012-05-16T11:52:31.410 回答