2013-03-21 10 views
63

hg mergeを使用して競合する変更をマージすると、Mercurialはこのように私の作業コピーにマージされるファイルにマーカーのセットを挿入します。競合の解決:「自分の」変更を自動的に受け入れる方法は?

<<<<<<< local 
    version = 0.2 
======= 
    version = 0.1 
>>>>>>> other 

その後、私は手動でhg resolve --all -lによって生成されるリストからUとしてマークされたすべてのファイルを編集hg resolve -m file1 file2 file3 ...

しかし、多くの状況では、いくつかの競合するファイルに対して私だけの、またはそれらの変更のみを受け入れたいと思っています。私は2つのシンプルなsed/awk/accept-theirs.shaccept-my.shという名前のスクリプトを作成するか、それを行うための "適切な"方法はありますか?

答えて

117

単一のファイル/それをやり直すためのyours

+0

ありがとうございました!私は@djcの意味を理解していませんが、あなたのソリューションは魅力的に機能します。 – psihodelia

+0

@psihodelia djcはほとんど同じです、 'hg help merge-tools'を試してください。(mergetoolsは後者のバージョンではエイリアスです) –

+5

副詞として、私はこれをエイリアス化しました:' [alias] mine = resolve -t internal:local theirs = resolve -t internal:other' – Melvyn

16

はこれを試してみてください:

hg merge --tool 'internal:other' 

は、より多くの情報のためにもhg help merge-tools参照してください。

+1

や 'resolve'を受け入れるようにtheirs

hg resolve -t internal:local --all 

を受け入れるために使用

hg resolve -t internal:other --all 

。 (また、 'internal:other'の引用符は不要です。) –

関連する問題