Какой лучший инструмент для трехстороннего слияния?

Subversion, Git, Mercurial и другие поддерживают трехсторонние слияния (объединяя мою, их и "базовую" ревизию) и поддерживают графические инструменты для разрешения конфликтов.

Какой инструмент вы используете? Windows, Mac OS X, Linux, бесплатная или коммерческая, вы называете это.

Вот некоторые из них, которые я использовал или слышал, только чтобы начать разговор:

(Я признаю, что это что-то вроде Best Diff Tool, но он отличается тем, что я явно фокусируюсь на трехсторонних инструментах слияния; WinMerge исключен из списка, например.)

Ответ 1

KDiff3 с открытым исходным кодом, кросс-платформенный

Тот же интерфейс для Linux и Windows, очень умный алгоритм для решения конфликтов, регулярные выражения для автоматического разрешения конфликтов, интеграция с ClearCase, SVN, Git, MS Visual Studio, редактируемый объединенный файл, сравнение каталогов

Его клавиатурная навигация велика: ctrl-стрелки, чтобы перемещаться по разностям, ctrl-1, 2, 3, чтобы сделать слияние.

Также см. fooobar.com/questions/28619/...

enter image description here

Ответ 2

Только что проверил P4merge, поскольку я слышал об этом в другой статье блога:

enter image description here

Очень гладкий интерфейс и БЕСПЛАТНО! Я был верным пользователем Araxis Merge, но учитывая, что это бесплатно и потрясающе, я бы посоветовал вам проверить его.

Ответ 3

Beyond Compare 3 Pro поддерживает трехстороннее слияние, и это довольно впечатляющий инструмент слияния. Он коммерческий (но стоит того, IMHO) и доступен в Windows, Linux и Mac OS X.

Как указано в комментарии, это также недорого.

Enter image description here

Примечание. Если у вас нет набора слияний, т.е. маркеров слияния, проживающих в целевом файле, Beyond Compare не предлагает сопоставление/редактирование трехсторонних файлов. Beyond Compare говорит, что функция находится в их списке.

Примечание. 3-стороннее слияние - это функция в Pro-версии Beyond Compare 3 только

Ответ 4

Meld Diff Viewer

У меня были хорошие отношения с Мелдом. Я использую его, когда мне приходится делать грязные слияния кода между ветвями. Он прост в использовании и имеет чистый интерфейс.

  •  
  • Открытый исходный код  
  • Поддержка Linux, Windows и MacOS  
  • Несколько файлов Diff  
  • Поддержка трехстороннего сравнения.

В Ubuntu установить так же просто, как: sudo apt-get install meld

enter image description here

Ответ 5

vimdiff. Это здорово. Все, что вам нужно, - это окно шириной в три фута.

enter image description here

Ответ 7

Araxis Merge. Это коммерчески, но это того стоит... Он доступен для Windows и Mac OS X.

Enter image description here

Ответ 8

Kdiff3 алгоритм разрешения конфликтов действительно впечатляет.

Даже когда subversion указывает на конфликт, Kdiff3 решает его автоматически. Там версии для Windows и Linux с тем же интерфейсом. Можно интегрировать его с Tortoise и с вашей оболочкой linux.

Он находится в списке моего любимого программного обеспечения с открытым исходным кодом. Один из первых инструментов, которые я устанавливаю на любой машине.

Вы можете настроить его как средство сравнения по умолчанию в Subversion, Git, Mercurial и ClearCase. Он также решает почти все конфликты ClearCase. В Windows у него хорошая интеграция с Windows Explorer: выберите два файла и щелкните правой кнопкой мыши, чтобы сравнить их, или щелкните правой кнопкой мыши, чтобы сохранить файл позже, а затем выберите другой для сравнения.

Объединенный файл доступен для редактирования. Имеет слабые сочетания клавиш.

Вы также можете использовать каталоги сравнения и объединения. Видеть: Kdiff3 Comparing directories

Дополнительная функция - использовать регулярные выражения для определения автоматических слияний.

Моя единственная досада заключается в том, что ее сложно скомпилировать, если ее нет в вашем любимом репозитории дистрибутива.

Ответ 9

Я люблю Эдиффа. Он поставляется с GNU Emacs.

Чтобы выполнить трехстороннее сравнение, используйте ediff-files3 (для выбора трех файлов) или ediff-buffer3 (для выбора трех уже открытых буферов). Вы получите экран, похожий на этот:

three-way diff in emacs

Обратите внимание на разницу в словах.

Вы можете нажать n или p чтобы перейти к следующей/предыдущей разнице, в то время как ab скопирует область из буфера a (самый левый) в буфер b (средний), и аналогично для других двухбуквенных комбинаций a, b c; rb восстановит область в буфере b. Хит ? для быстрого меню помощи, или прочитайте прекрасное руководство по слиянию diff3 в Emacs.

Ответ 10

Diffuse - это простой в использовании инструмент трехстороннего слияния. Он поддерживает все платформы и системы управления версиями, о которых вы упомянули, и может одновременно сравнивать более трех файлов.

enter image description here

Ответ 11

Ultracompare. Это действительно хорошо, хорошо обрабатывает большие файлы (более 1 ГБ), доступно для Windows/Mac/Linux, и оно коммерческое, но оно того стоит.

Screen shot of UltraCompare Professional on Windows

Ответ 12

xxdiff, если вы находитесь в стране Linux.

Enter image description here

Ответ 13

Я написал обзор некоторых инструментов слияния, которые могут оказаться полезными: http://www.misuse.org/science/2007/02/24/3-way-merging/

Резюме состоит в том, что я нашел ECMerge отличным, но коммерческим продуктом. http://www.elliecomputing.com/products/merge_overview.asp

введите описание изображения здесь

Я также согласен с MrTelly в том, что Ultracompare очень хорош. Одна из приятных особенностей заключается в том, что он будет сравнивать документы RTF и Word, что удобно, когда вы заканчиваете программирование словом с торговыми парнями, и они не правильно управляют своими документами.