1

Mercurial Queues を学習しようとしていますが、多数の "hg q*" コマンドと、"--mq" パラメーターを使用した通常の hg コマンドの両方があることに混乱しています。--mq パラメーターは、一部の q* コマンドを置き換えるためのものだと思いますが、よくわかりません。(新しい?)推奨される方法に関するチュートリアルやドキュメントはないようです。

4

2 に答える 2

4

この--mqオプションは、リポジトリを引数として取るすべてのコマンドに影響します。実際には、ターゲットリポジトリをに変更する$(hg root)/.hg/patchesため、次のようなMercurialコマンドを実行するのと実質的に同じです。

hg --repository $(hg root)/.hg/patches ....

その結果、オプションを持つすべてのコマンドには-R/--repository--mqオプションがあり、オプションを取得するために変更する必要はありませんでした。以前にMercurialで使用したコマンド(commit、push、pull、summary、idなど)はすべて取ることができます--mq。関連するPythonコードは次のとおりです。

def mqcommand(orig, ui, repo, *args, **kwargs):
    """Add --mq option to operate on patch repository instead of main"""

    # some commands do not like getting unknown options
    mq = kwargs.pop('mq', None)

    if not mq:
        return orig(ui, repo, *args, **kwargs)

    q = repo.mq
    r = q.qrepo()
    if not r:
        raise util.Abort(_('no queue repository'))
    return orig(r.ui, r, *args, **kwargs)
于 2011-02-11T16:12:29.640 に答える
1

フラグによって不要になったコマンド--mqは非推奨としてマークされたため、 から削除されましたhg help mq。これが理由qcommitでありqinit、長く表示されません。

hg qcommit興味がある場合は、コマンドのヘルプを表示することもできます。

--mq個人的には旗が嫌いです。代わりに、シェル エイリアスを使用します。

mq='hg -R $(hg root)/.hg/patches'

コマンド名とコマンド名の区別はmq status、操作に対する私の考え方と一致することがわかりましたmq commit。この単純なエイリアスは複数のキューを考慮していないことに注意してください。したがって、 を使用する場合は、少し拡張する必要があります。mq pushhgmqhg qqueue

于 2011-02-21T13:19:33.603 に答える