我正在添加一个gitolite更新钩子作为VREF,我想知道是否有一种方法可以将它应用到除gitolite-admin之外的所有存储库。
有一种更简单的方法,而不是列出我想要应用钩子的所有存储库,那就太好了。
目前我有:
repo @all
- VREF/update = @all我正在考虑添加一个例外,上面的一个用于gitolite admin存储库。类似于:
repo gitolite-admin
RW+ VREF/update = @all
repo @all
- VREF/update = @all有没有办法让这样的规则起作用呢?谢谢你的帮助!(我尝试过这种方法,但似乎不起作用)
发布于 2012-07-17 14:30:42
仅供不太熟悉VREF (随"g3" or Gitolite V3引入)的其他读者使用。
VREF rules背后的想法是:
VREF/FOO/开头的每个引用,都会触发对名为FOO的程序的调用。请注意,如果VREF规则不适用于该用户,则甚至不会调用该程序。这就是为什么人们可以定义一个“update”钩子,即使是update hook is reserved by gitolite。
一个普通的update钩子需要3个参数(ref,old SHA,new SHA)。
任何VREF都会得到这三个,后面至少还有4个。你的'update‘VREF应该忽略额外的参数。
如果fallthru被认为是“失败的”,你将被迫为你在这个仓库中使用的每个vref添加一个“成功规则”,在每种情况下列出在那个vref的上下文中没有提到的每个用户。
考虑到update VREF程序,您可以添加一个参数,允许您的更新脚本识别它在gitolite-admin上下文中被调用(不应执行任何操作):
repo gitolite-admin
- VREF/update/donothing = @all
repo @all
- VREF/update = @allhttps://stackoverflow.com/questions/11510046
复制相似问题