1

ドキュメントに記載されているように、このコマンドhg backoutを変更セットのマージで使用すると、問題が発生する可能性があります。最近、新しい開発者がマージ チェンジセットを撤回し、すべてがマージされたときに保持したかったコードが元に戻されるというケースがいくつかありました。

これを回避するために、これがまったく起こらないようにする良い方法を考えようとしています。フックを作成したり、バックアウト コマンドを完全に無効にする一般的な方法はありますか?

(私たちの標準的な開発者セットアップの一部は、拡張機能のカスタム セットをインストールすることです。そのため、これらの種類のルールを開発チーム全体のためにローカルにインストールする良い方法が既にあります。ルールセット)

4

2 に答える 2

1

これは、マージのバックアウトを防ぐ単純な Python ベースのフックです。クレジットは、私を正しい方向に向けてくれた@Obenに送られます。

def prebackout_prevent_backout_merge( ui, repo, **kwargs ):
    '''Don't allow backouts to of merge changesets.'''

    # Figure out if a --parent version was given or not.
    backout_to_parent = kwargs['opts'].get( 'parent', None )

    # If no parent version was given, proceed.
    if backout_to_parent is '':
        return False

    # Otherwise abort the operation.
    from mercurial import util
    raise util.Abort( 'Backout of a merge changeset is not allowed.' )

このフックは、.hgrc または Mercurial.ini で次のように構成できます。

[hooks]
pre-backout.ttd_prevent_backout_merge = python:PATH_TO_HOOK_SCRIPT:prebackout_prevent_backout_merge
于 2014-01-29T22:05:05.267 に答える