2012-01-25 16 views
12

私はMercurialとPythonに苛立ちます。簡単なことが難しくなるからです。私は解決できない場合このMercurialの競合をどのように解決しますか?

KDiff3

競合は簡単ですが、私は些細な葛藤を持っており、Mercurialが、私はこの些細なファイルの競合を解決するためにも、方法がわからない何をすべきかいずれかの示唆を与えるものではありませんので、これは私も複雑なことを解決することはできません。ファイルを編集してどこからでも再コミットできますか? hg mergeを実行する必要がありますか? Mercurialはなぜ私が保持するバージョンを選択させることができないのですか?なぜ1000の不十分に書かれたマンページを掘り下げなければ、何が簡単にできないのですか?

+1

これは、MercurialとPythonの問題ではなく、 'kdiff3'プログラムの使用方法に関するものです。 – Tobias

答えて

24

KDiff3 documentation、特にmerging and the output windowのセクションを参照する必要があります。競合を解決するには、liveまたはjanuaryがその行に適しているかどうかを判断する必要があります。その決定はあなたが作るものであり、あなたがどちらか一方を意味するかどうかを知るツールはありません。 KDiff3ので

、あなたは下のウィンドウの余白にjanuaryまたは右クリックを選択し、必要な行を選択し、liveを選択するために、プレスCtrlキー + をCtrlキー + を押してください。下のウィンドウをクリックして、手動で行を編集することもできます。

Mercurialはあなたの好きなようにconfigure your merge toolです。 TortoiseHgは、KDiff3をリストの一番上に置くデフォルト設定で出荷されますが、必要に応じて別のツールを使用することもできます。マージツールは、実際には、比較する3つのファイル(ベース、親1、親2)と出力ファイル名の4つのファイル名を受け入れるプログラムです。

コマンドラインでの競合を解決するには、適切なコマンドライン3ウェイマージツールを起動する必要があります。あなたが好きな場合は、例えばmerge with vimとすることができます。 (私ははvimdiffについて何も知らない怖い、私は自分自身をKDiff3の使用。)

あなたはツールがポップアップマージ見て好きではない場合、あなたは

[ui] 
merge = internal:merge 

を作るために設定することができますMercurialは、内部三者合併のみを使用します。編集内容が矛盾していない場合、ファイルをマージします。競合が発生すると、ファイルは「未解決」とマークされ、競合マーカーがファイルに格納されます。

ファイルを手で編集して、必要なバージョンを取得する必要があります。あなたがhg resolve your-fileで完全にマージを再起動

$ hg resolve --tool internal:other your-file 

$ hg resolve --tool internal:local your-file 

または他のバージョン:また、ローカル(自分の)バージョンのいずれかを再マージして選ぶことができます。ファイルをコミットするには、そのファイルを「解決済み」とマークする必要があります。これはhg resolve --mark your-fileで行われます。現在のマージのステータスについては、hg resolve --listを参照してください。

+0

マーティンありがとう。もし可能であれば、私はコマンドラインで解決できるようにしたいと思います。 –

+1

あなたは正しいですが - KDiff3は最も直感的なインターフェースを持っていません。しばらくすると非常に直感的ですが、最初にポップアップするときの画面の威圧感を忘れるのは簡単です。ところで、ツールバーの "A"、 "B"、 "C"ボタンを使用して、保持するビットを決定することもできます。 –

+0

@NickRosencrantz:マージツールの設定方法について少し説明しました。 –

19

Baseはローカルシステムの前のバージョンです 親1は現在の変更です 親2はサーバーからのファイルです。

変更をチェックインする必要がある場合は、マージメニューのBをどこでも選択します。 ローカルマシンに最新のサーバーバージョンを追加する場合は、マージメニューのCをどこでも選択してください。

+5

ありがとうございました!あなたは "ベース"が以前のバージョンであることをどのように知っていましたか?神秘的で無意味な "base"、 "parent1"、 "parent2"という単語について、グーグルで1時間グーグルグーグルで語っていた! – Slav

関連する問題