2012-12-21 5 views
8

私は長い間開発されたブランチを持っています。開発時には、デフォルトのブランチがそのブランチに数回マージされました。私は今、マージを無視して、そのブランチで行われたすべての変更をレビューして、デフォルトにマージするのが安全かどうかを判断したいと思います。水銀 - すべてのマージコミットを無視してブランチの変更を参照

私は

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

を試みたが、それはまだマージにより導入された変化を示しています。また、このHow to show the diff specific to a named branch in mercurialしかし

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

を、次の試してみましたまだマージによって導入された変更をもたらします。

答えて

5

あなたはあなたのコマンドに問題があなたがhg diffを実行し、それをいくつかのチェンジセットを渡すとき、あなたが実際に実行することである程度revsets構文

あなたの場合

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

+0

レイジーアナグマ@おかげで、私はそれが 'HG差分-r「ブランチ(『myBranch』) - マージ()」に違いはありません出力生成怖い'私はまだマージによって導入された変更を参照してください を。 あなたは 'hg diff -r"ブランチ( 'myBranch')と!merge() "'を使っていましたか? – Swiety

+0

@Swiety 1) 'log'と' diff'は別々のコマンドです** **完全に別のコマンド** 2) 'log'を書いたとき - あなたがチェンジセットのリストを取得しなければならないので、' log'を書きました** RTFM "Formal Logic": 'x-y'!=' x '(x、y、y)は、と!y' !!! **(x内のチェンジセットはyではない)!=(x内のチェンジセットとy内のチェンジセット)** - 学校へ戻る –

+1

私の正式な論理はあまり良くありませんが、この例では 'x-y'と'xと!y'は同じ結果を出しますか?マージされていない「myBranch」の中の何か? – icabod

6

を読むためにを持っているこれらのチェンジセットの間に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"を使用してください。

1

以下はlogコマンドを使用しますが、--patchパラメータを指定して、それが同様に修正線を表示することができます

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

短い形式:

hg log -Mpb my-branch 
0

非常に良い質問です、どのI長い間、良い答えを見つけようとしていますが、良いものは見つけられませんでした。私は、これはすべての時間をワークフロー使用しますが、私は実際に実際のマージを行うにはしたくない可能性がある場合、それは枝を(スイッチする必要があるため、それは完全に私を満たしていない

hg status  # make sure that you don't have local changes 
hg up <target_branch> 
hg merge <your branch> 
hg diff > merge.diff 
hg up -C # this one cleans the merge 

:OK、100%の作品一つのことはこれです

ここでは良い年齢を探していますが、これまで見つかっていない年齢層はありません。試したものである:

hg diff -r "branch('.') and ! merge()" # this page 
hg diff -r "default:branch('.') and not merge()" 
hg diff -r "parents(branch(.)):branch('.') and not merge()" 

この問題はで説明:「あなたは明確に定義することができますので、もしあなたがSOに読み取りMercurialの貢献を私たちのいずれかを納得させるかもしれません:として良い答えを持ってい

関連する問題