0

我是 Mercurial 的新手,我正在编写一个 pretag 钩子来检查标签名称的策略。

我有下面的代码。

version_re = r'(ver-\d+\.\d+\.\d+|tip)$'
def invalidtag(ui, repo, hooktype, node, tag, **kwargs):
assert(hooktype == 'pretag')

....


if not re_.match(tag):
    ui.warn('Invalid tag name "%s".\n' % tag)
    return True
return False

当我标记时,这个钩子非常有效。但是,当我想使用 --remove 选项删除无效标签时,也会执行此挂钩。

那么,有什么办法可以避免他的处境呢?

4

1 回答 1

0

当标记被标记为删除时,传递给钩子的节点是来自 mercurial.node 的 nullid。因此,您应该能够根据 mercurial.node 的 nullid 检查该节点。

您应该使用 mercurial.node 中的“hex”函数将节点转换为十六进制表示。这个十六进制函数的行为与 python 的内置函数不同。

于 2013-05-03T06:52:53.527 回答