9

長い間開発されてきた支店があります。開発中に、デフォルトのブランチがそのブランチに数回マージされました。ここで、マージを無視してそのブランチで行われたすべての変更を確認し、デフォルトにマージしても安全かどうかを判断したいと思います。

私は試した

hg diff -r "branch('myBranch') - merge()"

ただし、マージによって導入された変更は引き続き表示されます。また、この方法に従って、Mercurialで名前付きブランチに固有のdiffを表示してみましたが

hg diff -r "branch('myBranch') - branch('default')"

それでも、マージによって導入された変更をもたらします。

4

6 に答える 6

7

コマンドの問題は、 a を実行しhg diffていくつかのチェンジセットを渡すと、実際にはそれらのチェンジセット間の差分を実行するため、マージ結果が表示されることです。

変更セットによって加えられた変更だけを見たい場合は、次を使用できますexport

$ hg export -r "branch('mybranch') and not merge()"
// lists the changes made by each changeset

レビューを簡単にするために、これらをリビジョン/変更セット ID に基づく名前のファイルに出力できます。

$ hg export -r "branch('mybranch') and not merge()" -o "%H.patch"

... のマージ以外のチェンジセットごとにファイルを作成し、mybranch「40 桁のチェンジセット id.patch」という名前のファイルに出力します。リビジョン番号を使用したい場合 (リビジョン ID はローカルであるため、ローカル リポジトリでのみ有用です)、 を使用します"%R.patch"

于 2013-01-02T10:58:39.383 に答える
7

revsets構文について読む必要があります

あなたの場合

hg log -r "branch('myBranch') and ! merge()"

于 2012-12-21T15:09:38.663 に答える
3

以下はlogコマンドを使用していますが、--patchパラメーターを使用すると、変更された行も表示できます。

hg log --branch my-branch --no-merges --patch

ショートフォーム:

hg log -Mpb my-branch
于 2015-11-26T12:21:06.353 に答える