我正在添加一个gitolite update hook作为VREF,并且想知道是否有办法将它应用于除gitolite-admin之外的所有存储库。
使用更简单的方法而不是列出我想要应用挂钩的所有存储库会很棒。
目前我有:
repo @all
- VREF/update = @all
我正在考虑为gitolite-admin存储库添加一个异常。 类似的东西:
repo gitolite-admin
RW+ VREF/update = @all
repo @all
- VREF/update = @all
有没有办法让像这样的规则起作用?谢谢您的帮助! (我试过这种方式,似乎没有用)
答案 0 :(得分:3)
仅适用于不熟悉VREF
的其他读者(与"g3" or Gitolite V3一起介绍)。
VREF rules背后的想法是:
- 对于适用于此用户的规则中以
VREF/FOO/
开头的每个refex,将触发对名为FOO
的程序的调用。 请注意,如果VREF
规则不适用于该用户,则甚至不会调用该程序。
这就是即使update
hook is reserved by gitolite即可定义“update
”钩子的原因
普通update
钩子需要3个参数(ref,旧SHA,新SHA)
任何VREF都将获得这三个,然后至少再获得4个。您的“update
”VREF应该忽略额外的参数。
- fallthru 正在考虑成功(即您不会拒绝对回购的git操作,因为没有应用任何VREF)
如果将fallthru视为“失败”,则您将被迫为此repo中使用的每个vref添加这样的“成功规则”,在每种情况下列出在该vref的上下文中尚未提及的每个用户
考虑update
VREF程序,您可以添加一个参数,允许您的更新脚本识别它在gitolite-admin
上下文中调用(并且不应该执行任何操作):
repo gitolite-admin
- VREF/update/donothing = @all
repo @all
- VREF/update = @all