KDiff3 のドキュメント、特にマージと出力ウィンドウに関するセクションを参照する必要があります。競合を解決するには、行に対してlive
またはjanuary
が正しい選択であるかどうかを判断する必要があります。その決定はあなたが行うものであり、あなたがどちらを意図しているかをツールが知ることはできません。
KDiff3 では、 + を押しCtrlて2を選択しlive
、Ctrl+3を押して選択するjanuary
か、下部ウィンドウの余白を右クリックして目的の行を選択します。下部のウィンドウをクリックして、行を手動で編集することもできます。
Mercurial では、マージ ツールを好きなように構成できます。TortoiseHg には、KDiff3 をリストの一番上に配置するデフォルト構成が付属していますが、必要に応じて別のツールを使用することもできます。マージ ツールは、実際には、比較する 3 つのファイル (ベース、親 1、親 2) と出力ファイル名の 4 つのファイル名を受け入れる単なるプログラムです。
コマンドラインで競合を解決するには、適切なコマンドライン 3 方向マージ ツールを起動する必要があります。たとえば、必要に応じて vim とマージできます。(残念ながら私は vimdiff について何も知りません。私自身 KDiff3 を使用しています。)
マージ ツールのポップアップが表示されたくない場合は、次のように設定できます。
[ui]
merge = internal:merge
Mercurial が内部の 3 方向の合併のみを使用するようにします。編集が競合していない場合、ファイルは正常にマージされます。競合がある場合、ファイルは「未解決」としてマークされ、競合マーカーがファイルに保存されます。
次に、ファイルを手動で編集して、必要なバージョンを取得する必要があります。再マージして、ローカル (自分の) バージョンのいずれかを選択することもできます。
$ hg resolve --tool internal:local your-file
または他のバージョン:
$ hg resolve --tool internal:other your-file
でマージを完全に再開しhg resolve your-file
ます。ファイルをコミットする前に、ファイルに「解決済み」のマークを付ける必要があります。これは で行われhg resolve --mark your-file
ます。hg resolve --list
現在のマージのステータスについては、 を参照してください。