在Git中跟踪Gitolite(常见)钩子

时间:2012-05-02 13:35:49

标签: git githooks gitolite

我在Gitolite的manual中发现的唯一一件事就是:

  

如果你想添加自己的钩子,只要不是它就很容易   '更新'钩子。只需将其添加到$ HOME / .gitolite / hooks / common并运行即可   gitolite setup。

但是,我还想跟踪对这些挂钩所做的更改,如果需要可以恢复到旧版本(审核功能cited是其中一个使用Gitolite的优点)。所以,基本上,我期待在我的gitolite-admin克隆中添加hooks文件夹,然后将钩子推送到服务器(就像使用配置或添加公钥一样)。

这有意义吗?有可能吗?

2 个答案:

答案 0 :(得分:4)

可以在gitolite-admin回购(gitolite-admin/hooks/common)中添加这些挂钩并推回Gitolite服务器。
所以他们是版本的。 (至少就是Gitolite V2的情况,我将不得不用Gitolite V3检查)


事实证明,它确实有效,但OP Rijk报告除外:

  

问题是我的conf中的错误,停止了安装程序   注释掉该行,并正确安装了触发器

     

gitolite.conf中的这一行:

config hooks.showrev = "git log -1 --name-status --format='%%h (%%ad) ------------------------------%%n%%n%%B' %s". 
  

不知道为什么,但触发了以下错误:

FATAL: bad value 'git log -1 --name-status --format='%%h (%%ad) ------------------------------%%n%%n%%B' %s'. 
  

现在注释掉,稍后可能会重写post-receive-email脚本。


OP Rijk目前的解决方案:

  

我目前在Gitolite v3上的解决方案是:

     
      
  • 将内容放入 gitolite-admin/local-code/hooks/common
  •   
  • 然后在服务器上为 $HOME/.gitolite/hooks/common 中的相关项目添加完整路径符号链接。
  •   

答案 1 :(得分:3)

如果你看一下src / lib / Gitolite / Conf.pm中的代码,如果值中有一个UNSAFE_PATT字符串,你会发现它打印出“错误值”。

UNSAFE_PATT看起来像这样(在src / lib / Gitolite / Rc.pm中): $ UNSAFE_PATT = qr([`〜#\ $ \&()|;<>]);

问题是你使用括号(以及gitolite.conf中的简单解析)