Subversion, Git, Mercurial и другие поддерживают трехсторонние слияния (объединяя мою, их и «базовую» ревизию) и поддерживают графические инструменты для разрешения конфликтов.
Какой инструмент вы используете? Windows, Mac OS X, Linux, бесплатная или коммерческая, вы называете это.
Вот некоторые из них, которые я использовал или слышал, только чтобы начать разговор:
(Я признаю, что это что-то вроде Best Diff Tool , но отличается тем, что я явно фокусируюсь на трехсторонних инструментах слияния; WinMerge исключен из списка, например.)
version-control
merge
dvcs
Дан Фабулич
источник
источник
Ответы:
KDiff3 с открытым исходным кодом, кроссплатформенный
Единый интерфейс для Linux и Windows, очень умный алгоритм для разрешения конфликтов, регулярные выражения для автоматического разрешения конфликтов, интеграция с ClearCase, SVN, Git, MS Visual Studio, редактируемый объединенный файл, сравнение каталогов
Его клавиатурная навигация великолепна: стрелки ctrl для навигации по различиям, ctrl-1, 2, 3 для объединения.
Также см. Https://stackoverflow.com/a/2434482/42473.
источник
kdiff3
ответ для примера.kdiff3
будет рад дифференцировать и объединять целые деревья каталогов и делает это в течение многих лет! Некоторые инструменты (такие какgit
) могут запускать его только для каждого файла, но другие инструменты (например, Mercurial) с радостью позволят вам выполнить трехстороннее сравнение / слияние целых репозиториев.Только что проверил P4merge, так как я слышал об этом в другой статье в блоге:
Очень удобный интерфейс и БЕСПЛАТНО! Я был верным пользователем Araxis Merge, но, учитывая, что это бесплатно и здорово, я бы посоветовал вам проверить это.
источник
Beyond Compare 3 Pro поддерживает трехстороннее слияние , и это довольно впечатляющий инструмент слияния. Он коммерческий (но того стоит, ИМХО) и доступен в Windows, Linux и Mac OS X.
Как отмечено в комментарии, это также недорого.
Примечание. Если у вас нет набора для слияния, то есть маркеров слияния, находящихся в целевом файле, Beyond Compare не предлагает трехстороннее сравнение / редактирование файлов. Beyond Compare говорит, что эта функция находится в их списке .
Примечание. Трехстороннее объединение - это функция только в Pro версии Beyond Compare 3
источник
Meld Diff Viewer
У меня был только хороший опыт работы с Мелдом. Я использую его, когда мне приходится делать беспорядочные слияния кода между ветками. Он прост в использовании и имеет чистый интерфейс.
В Ubuntu установить так же просто, как:
sudo apt-get install meld
источник
vimdiff. Здорово. Все, что вам нужно, это окно шириной три фута.
источник
Diff Merge :
Кроссплатформенные, настоящие трехсторонние слияния, и это абсолютно бесплатно для коммерческого или личного использования.
источник
Araxis Merge . Он коммерческий, но он того стоит ... Он доступен для Windows и Mac OS X.
источник
Алгоритм разрешения конфликтов Kdiff3 действительно впечатляет.
Даже когда Subversion указывает на конфликт, Kdiff3 решает его автоматически. Есть версии для Windows и Linux с одинаковым интерфейсом. Можно интегрировать его с Tortoise и с вашей оболочкой linux.
Он находится в списке моих любимых программ с открытым исходным кодом. Один из первых инструментов, которые я устанавливаю на любой машине.
Вы можете настроить его как инструмент сравнения по умолчанию в Subversion, Git, Mercurial и ClearCase. Это также решает почти все конфликты ClearCase. В Windows он имеет хорошую интеграцию с проводником Windows: выберите два файла и щелкните правой кнопкой мыши, чтобы сравнить их, или щелкните правой кнопкой мыши, чтобы «сохранить в более поздний» файл, а затем выберите другой файл для сравнения.
Объединенный файл доступен для редактирования. Имеет удобные сочетания клавиш.
Вы также можете использовать его для сравнения и объединения каталогов. Видеть:
Расширенная функция заключается в использовании регулярных выражений для определения автоматических слияний.
Единственное, что меня раздражает, это то, что его немного сложно скомпилировать, если его нет в вашем любимом дистрибутиве.
источник
Я люблю Эдиффа . Он поставляется с GNU Emacs .
Для выполнения трехстороннего сравнения используйте
ediff-files3
(для выбора трех файлов) илиediff-buffer3
(для выбора трех уже открытых буферов). Вы получите экран, похожий на этот:Обратите внимание на выделение различий в словах.
Вы можете нажать клавишу
n
илиp
для перехода к следующему / предыдущему файлов изменений, в то время какab
будет скопировать область из буфера в (самый левый) в буфер Ь (в середине), а так же для других комбинаций двухсимвольныйa
,b
,c
;rb
восстановит область в буфере b. Нажмите?
для быстрого меню помощи или прочитайте прекрасное руководство по слиянию diff3 в Emacs .источник
ediff-merge-with-ancestor
) , но я не уверен , если он имеет 3 или 4 панели, а также выше скриншот не отражает этого.ab
скопирует область из буфера a в буфер b. Я не думаю, что есть версия с четырьмя окнамиediff
. (Я знаю,emerge
что вместо этого использует выделенный выходной буфер, ноemerge-files-with-ancestor
не показывает предка, он только использует его, чтобы угадать правильную версию , видя, какая из них согласуется с предком.)Ultracompare . Это действительно хорошо, хорошо обрабатывает большие файлы (более 1 ГБ), доступно для Windows / Mac / Linux, и оно коммерческое, но оно того стоит.
источник
Diffuse - это простой в использовании инструмент трехстороннего слияния. Он поддерживает все платформы и системы контроля версий, которые вы упомянули, и может сравнивать более трех файлов одновременно.
источник
xxdiff, если вы находитесь на земле Linux.
источник
В итоге я нашел ECMerge отличным, хотя и коммерческим продуктом. http://www.elliecomputing.com/products/merge_overview.asp
Я также согласен с MrTelly, что Ultracompare очень хорош. Приятной особенностью является то, что он будет сравнивать документы в формате RTF и Word, что удобно, когда вы заканчиваете программировать на словах с продавцами, и они не управляют своими документами правильно.
источник