3方向テキストマージ & コンフリクトビューア
共通ベース・自分のバージョン・受信バージョンを貼り付けて「テキストをマージ」を押します。片側だけの行変更は 1 つの結果に統合され、同じ行を両方が変更した箇所は競合マーカーで囲まれるので、コピー前に内容を確認できます。
ブラウザ内でローカルに実行
共通ベース・自分のバージョン・受信バージョンを貼り付けて「テキストをマージ」を押します。片側だけの行変更は 1 つの結果に統合され、同じ行を両方が変更した箇所は競合マーカーで囲まれるので、コピー前に内容を確認できます。
ブラウザ内でローカルに実行
このワークベンチは 3 つのプレーンテキストを 1 行ずつ比較します。2 つの版が分岐する前の共通ベース、自分のバージョン、受信バージョンです。片側だけの変更はそのまま結果に取り込まれ、両側が同じ範囲を書き換えた場合は、どちらかを推測せず両方の案を競合ブロックとして残します。
マージ結果の隣には 3 つのカウンターと競合一覧が並び、各競合の出力行とベース行がわかります。比較はページ内で実行されるためテキストはブラウザーの外に出ず、コピーまたはダウンロードで次の工程に渡せます。
各バージョンは最長共通部分列による行差分でベースと比較されます。片側だけが変更した範囲はその側から採用し、両側が変更した範囲は 1 つの競合ブロックにまとめるため、隣り合う編集が 2 つのマーカーに分かれることはありません。両側が同じ変更(同じ行の削除を含む)を加えた場合は競合せず統合されます。
比較は文字単位ではなく行単位です。書き換えた行は変更行として数えられ、マーカーも 1 行として挿入されます。2 つの版は同じベースと比較されるため、互いの編集履歴を知っている必要はありません。
競合ブロックは <<<<<<< YOUR VERSION の行で始まり、自分の行、||||||| COMMON BASE と元のベース行、区切りの =======、受信側の行、閉じる >>>>>>> INCOMING VERSION の行が続きます。ブロックの外側はすでにマージ済みです。
カウンターはそれぞれ別のものを数えます。競合はマークされたブロック数、変更領域は 2 つの比較で見つかった変更範囲の数、行はマージ結果の行数です。3 行のファイルで別々の 2 行を変更すると、変更領域 2・競合 0・行 3 になります。同じ 1 行を両側が変更した場合は、その行・ベースの行・受信側の行が 4 本のマーカー行に挟まれて残るため、競合 1・行 9 になります。
比較行列はブラウザー内で作られるため、ベースの行数とどちらかの版の行数を掛けた値が 400 万行ペアを超えると比較を拒否します。2,000 行のベースに 2,000 行の 2 版を掛けるマージは Chrome で 0.5 秒ほどで完了し、2,010 行はメッセージとともに拒否され、直前の結果は画面に残さず消去されます。
マージ時にネットワーク要求は発生しないため、オフラインでも、外部サービスに送れないテキストでも使えます。結果が示すのは 2 つの版がどこで食い違っているかであり、どちらが正しいかではありません。ビルド・設定ファイル・文書に取り込む前に、競合ブロックを必ず確認してください。