Какой лучший инструмент для трехстороннего слияния?
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]()
Ответ 6
Сброс Diff Объединить с исходным кодом:
Кросс-платформенный, истинный трехсторонний слияние и полностью бесплатный для коммерческого или личного использования.
![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, что удобно, когда вы заканчиваете программирование словом с торговыми парнями, и они не правильно управляют своими документами.