我编写(进程中)钩子以防止在本地添加 BAD 标记名称:
.hg/hgrc:
pretag.badtagname = python:.hg/hgcheck.py:localbadtag
.hg/hgcheck.py:
goodtag_re = r'(ver-\d+\.\d+\.\d+|tip)$' def localbadtag(ui, repo, hooktype, node, **kwargs): 断言(钩子类型 == 'pretag') re_ = re.compile(goodtag_re) 如果不是 re_.match(tag): ui.warn('无效的标签名 "%s".\n' % 标签) ui.warn('使用tip之一,ver-xx.xx.xx\n') 返回真 返回假
如何检查pretxnchangegroup钩子?
我尝试编写以下代码:
def pushbadtag(ui, repo, hooktype, node, **kwargs): 断言(钩子类型 == 'pretxnchangegroup') re_ = re.compile(goodtag_re) 对于 xrange 中的 rev(repo[node].rev(), len(repo)): ui.warn('rev: %d\n' % rev) 对于 repo[rev].tags() 中的标签: ui.warn('标签:' + 标签 + '\n') 如果不是 re_.match(tag): ui.warn('无效的标签名 "%s" for rev: "%s".\n' % (tag, rev)) ui.warn('使用tip之一,ver-xx.xx.xx\n') 返回真 返回假
但是当我(在启用了上pretxnchangegroup钩子的情况下推动回购时 :
$ hg 标签 gg $ hg推-f 推送到 /cygdrive/d/home/tmp/hg/good 寻找变化 添加变更集 添加清单 添加文件更改 添加了 1 个变更集,对 1 个文件进行了 1 个更改(+1 个头) 转:35 标签: 小费
你可以看到 rev.tags() 不返回gg标签!