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」関数を使用して、ノードを 16 進数表現に変換する必要があります。この 16 進関数は、Python の組み込み関数とは異なる動作をします。

于 2013-05-03T06:52:53.527 に答える