Неграфический инструмент 3-way merge

В настоящее время я использую команду слияния RCS для выполнения трехстороннего слияния, но одна вещь всегда раздражала меня по этому поводу. Если я использую опцию -A, то же изменение, внесенное в оба файла, будет отображаться как конфликт:

<<<<<<< file1
file1 строка 1
||||||| ориг
линия 1 оригинала
=======
file2 строка 1
>>>>>>> file2
линия оригинала 2
<<<<<<< orig
=======
строка добавлена ​​в обоих изменениях
>>>>>>> file2
оригинальная линия 3

Если я использую значение по умолчанию (-E), то эти идентичные изменения не показываются, но тогда выходной результат показывает только двух участников, а не предка, что-то вроде этого:

<<<<<<< file1
file1 строка 1
=======
file2 строка 1
>>>>>>> file2
линия оригинала 2
строка добавлена ​​в обоих изменениях
оригинальная линия 3

Существует ли какая-либо программа, которая по существу будет вести себя так же, как слияние RCS, но имеет какой-то способ показать все три версии в конфликтах при автоматическом объединении идентичных изменений?

2 ответа

Похоже, у diff3 есть несколько интересных опций.

На убунту:

       -m --merge
              Выведите объединенный файл вместо сценария e d (по умолчанию -A).

Вы просили неграфическое изображение, но vimdiff и gvimdiff могут сделать 3 смежных окна.

KDiff3 является графическим, но у него есть опция "--auto", которая при вызове из командной строки выполняет слияние и отображает графический интерфейс только в случае возникновения конфликта. Я знаю, это означает, что вам все еще нужен графический интерфейс, но kdiff3 все еще может быть полезен из командной строки. Я использую это все время (в Windows - не уверен насчет других версий).

(Я хотел добавить этот комментарий к другому посту KDiff3, но не смог понять, как это сделать - извините.)

Другие вопросы по тегам