Ответ 1
Я могу добавить в вашу коллекцию DeltaXML - они не претендуют на diff3, но заслуживают рассмотрения.
Я хочу иметь возможность выполнить трехстороннее слияние документов XHTML:
Примечание:
diff3
, которое реализует трехстороннее слияние плоского текстаИнструменты, которые я нашел, включают:
Первый из вышеперечисленных (т.е. "3DM" ) явно говорит о том, что он реализует трехсторонние слияния.
Я не знаю о двух других: "diff", за которым следует "patch", эквивалентен трехстороннему слиянию или вместо этого "patch" может только повторно применить diff к исходному файлу (а не к третья, измененная копия файла)
Можете ли вы порекомендовать какое-либо программное обеспечение (из списка выше или в другом месте) для этой цели и/или описание алгоритма слияния?
Изменить: Совместимость, различение и слияние XML - еще одна статья 2008 года, в которой содержится краткий обзор различных алгоритмов и ссылок на различные реализации.
Изменить № 2: автор подтвердил, что Fuego Core XML Diff и Patch Tool может только исправлять исходный файл и не выполнять трехстороннее слияние.
Я могу добавить в вашу коллекцию DeltaXML - они не претендуют на diff3, но заслуживают рассмотрения.
У меня нет бесплатного решения, я боюсь, но Project: Merge - это дешевый инструмент сравнения и слияния XML, который можно управлять через командную строку. Возможно, он подключится к вашему приложению.
Одной из бесплатных альтернатив было бы сделать
$ xmlstarlet fo before.xml > before.xml
$ xmlstarlet fo after.xml > after.xml
а затем do
$ diff before.xml after.xml
чтобы создать патч разницы XML. Это бесплатно и просто.