Gitolite更新挂钩排除库(Gitolite Update Hook exclude a rep

2019-06-26 08:07发布

我加入一个gitolite更新钩为VREF,并想知道是否有将它应用到所有存储库除了gitolite管理员一个办法。

有一个简单的方法,而不是列出所有存储库我想申请的将是巨大的钩子。

目前,我有:

repo @all
-    VREF/update    =   @all

我想上面添加一个用于gitolite管理员库中的异常。 就像是:

repo gitolite-admin
RW+  VREF/update    =   @all

repo @all
-    VREF/update    =   @all

有没有办法让这样一个规则来工作? 谢谢您的帮助! (我试过这样的,它似乎没有工作)

Answer 1:

只是不太熟悉其他读者VREF (引入了“G3”,或者Gitolite V3 )。

背后的想法VREF规则是:

  • 对于每一个refex开始VREF/FOO/于适用于该用户的规则,在程序调用的调用FOO被触发。 请注意,如果程序没有甚至被称为VREF规则并不适用于该用户。

这就是为什么我们可以定义一个“ update ,即使”钩update钩子被gitolite保留 。
一个正常的update钩预计3个参数(参考文献,旧SHA,新SHA)。
任何VREF将获得这三个,后面至少4个。 你的“ update ” VREF应该只是忽略额外的参数。

  • fallthru正在考虑成功(即你不会在回购否认了混帐操作,因为应用没有VREF的)
    如果fallthru将被认为是“失败”,你会不得不增加一个“成功法则”像这样对每个VREF你在这个回购使用,在每种情况下上市谁是不是已经在VREF的上下文中提及的每个用户

考虑到update VREF程序,您可以添加一个参数,这样可以让你的更新脚本来识别它是在叫做gitolite-admin上下文(和应该什么都不做):

repo gitolite-admin
-  VREF/update/donothing    =   @all

repo @all
-  VREF/update    =   @all


文章来源: Gitolite Update Hook exclude a repository
标签: hook gitolite