Алгоритм слияния XML с 3 путями

Я хочу смочь сделать слияние с 3 путями документов XHTML:

  1. Запустите с некоторого оригинала документа
  2. Один пользователь редактирует копию оригинала документа
  3. Другой пользователь редактирует отдельную копию оригинала документа
  4. Нужен инструмент для слияния (автоматически и/или визуально) изменений, внесенных этими двумя пользователями.

Примечание:

  • Я хочу включать эту функциональность в коммерческое программное обеспечение: таким образом, я предпочитаю что-то, что это - free-as-in-beer и/или открытый исходный код вместо коммерческого инструмента.
  • Я подозреваю, что лучше, если инструмент XML-знает, чем попытаться использовать программное обеспечение как diff3 который реализует слияние с 3 путями плоского текста
  • Учитывая, что все три входных документа являются действительными документами XHTML, получающийся выходной документ должен проверить также

Инструменты, которые я нашел, включают:

  1. "3DM" XML слияние с 3 путями и инструмент Differencing
  2. Ядро Fuego разность XML и инструмент патча
  3. XmlDiff (в последнее время от сайта GotDotNet, который был закрыт, но возможно он живет на как компонент Блокнота XML),

Первое из вышеупомянутого (т.е. "3DM") говорит явно, что реализует слияния с 3 путями.

Я не знаю о других двух: эквивалентна ли "разность", сопровождаемая "патчем", слиянию с 3 путями, или вместо этого может ли "патч" только повторно применить разность к исходному файлу (а не к одной трети, измененной копии файла)

Можно ли рекомендовать некоторое программное обеспечение (из списка выше, или в другом месте) с этой целью, и/или описание алгоритма слияния?


Править: Соответствие, diffing и слияние XML являются другой статьей с 2008, которая включает краткий обзор различных алгоритмов и ссылок на различные реализации.


Редактирование № 2: автор подтвердил, что Базовый Инструмент Разности и Патча XML Fuego может только patche исходный файл и не реализует слияние с 3 путями.

12
задан ChrisW 11 February 2010 в 07:37
поделиться

2 ответа

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

3
ответ дан 2 December 2019 в 22:51
поделиться

Боюсь, у меня нет бесплатного решения, но Project: Merge — это дешевый инструмент для сравнения и слияния XML, которым можно управлять из командной строки. . Вероятно, он может подключиться прямо к вашему приложению.

4
ответ дан 2 December 2019 в 22:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: