変更 B と D を保持し、C をスキップする方法はありますか?
状態 D です。:w file.ext_D
状態 C に戻ります。 :w file_ext_C
状態 B に戻ります。 :w file.ext_B
:!kdiff3 file.ext_B file.ext_C file.ext_D
これにより、相違点の 3 通りのマージが行われますが、マージの競合ごとに手動で D のすべての赤い線を選択する必要があります。簡単な解決策ではありません。
代わりに
:!kdiff3 file.ext_C file.ext_B file.ext_D
次に、マージが自動的に行われます (複数の変更がある個々の行を除く)。
より複雑なシナリオでは、より困難になります。
注: リビジョン管理ツールがどのように役立つかはわかりません。基本的には、B と D の間にパッチを作成し、そこから C から D へのパッチを差し引くようなことを行っています。リビジョン管理システムは通常、単一のブランチに沿った変更ではなく、変更の異なるソース間のマージを管理するように設計されているようです。
kdiff3 はhttp://kdiff3.sourceforge.net/で入手できます。