ローカルで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): assert(hooktype =='pretag') re_ = re.compile(goodtag_re) re_.match(tag)でない場合: ui.warn('無効なタグ名"%s"。\ n'%タグ) ui.warn('ヒントの1つ、ver-xx.xx.xxを使用\ n') Trueを返す Falseを返します
pretxnchangegroupフックのこのチェックをどのように行いますか?
私はこのコードを書いてみます:
def pushbadtag(ui、repo、hooktype、node、** kwargs): assert(hooktype =='pretxnchangegroup') re_ = re.compile(goodtag_re) xrange(repo [node] .rev()、len(repo))のrevの場合: ui.warn('rev:%d \ n'%rev) repo [rev] .tags()のタグの場合: ui.warn('タグ:'+タグ+'\ n') re_.match(tag)でない場合: ui.warn('revの無効なタグ名"%s": "%s"。\ n'%(tag、rev)) ui.warn('ヒントの1つ、ver-xx.xx.xxを使用\ n') Trueを返す Falseを返します
しかし、私が(上部の pretxnchangegroupフックを有効にしてリポジトリにプッシュする場合:
$hgタグgg $ hg push -f / cygdrive / d / home / tmp / hg/goodにプッシュ 変更を検索する チェンジセットの追加 マニフェストの追加 ファイル変更の追加 1つのファイルに1つの変更を加えた1つのチェンジセットを追加しました(+1ヘッド) rev:35 タグ:ヒント
rev.tags()がggタグを返さないことがわかります!