Неграфический инструмент 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, но не смог понять, как это сделать - извините.)