merge3 gem [source]をもう一度見たほうがいいと思います。
この小さな例はそれを説明しています:
require 'rubygems'
require 'merge3'
start = <<TEXT
This is the baseline.
The start.
The end.
TEXT
changed_A = <<TEXT
This is the baseline.
The start (changed by A).
The end.
TEXT
changed_B = <<TEXT
This is the baseline.
The start.
B added this line.
The end.
TEXT
result = Merge3::three_way(start, changed_A, changed_B)
puts result
生成される出力は次のとおりです。
これがベースラインです。
開始 (A によって変更)。
Bはこの行を追加しました。
終わり。
マージの競合をどのように処理するかはわかりません。また、ファイルの 3 方向のマージを処理することになっているため、行ベースのようです。それが問題である場合(例では単純な文字列を比較しようとするため)、すべての文字の間に改行を追加できます。
お役に立てれば。