Я хочу выполнить трехстороннее объединение документов XHTML:
- Начните с оригинальной копии документа
- Один пользователь редактирует копию оригинального документа
- Другой пользователь редактирует отдельную копию оригинального документа
- Нужен инструмент для объединения (автоматически и / или визуально) изменений, внесенных двумя пользователями.
Примечание:
- Я хочу включить эту функцию в коммерческое программное обеспечение: поэтому я предпочитаю что-то, что бесплатно в пиве и / или с открытым исходным кодом, вместо коммерческого инструмента.
- Я подозреваю, что лучше, если инструмент поддерживает XML, чем пытаться использовать программное обеспечение, такое как
diff3
, которое реализует трехстороннее объединение плоского текста
- Учитывая, что все три входных документа являются действительными документами XHTML, итоговый выходной документ также должен проверяться
Инструменты, которые я нашел, включают:
- Трехсторонний инструмент для слияния и дифференцирования XML "3DM"
- Инструмент различий и исправлений Fuego Core XML
- XmlDiff (в последнее время с сайта GotDotNet, который был закрыт, но, возможно, он живет как компонент XML Notepad )
Первый из вышеперечисленных (то есть "3DM") прямо говорит, что он реализует трехсторонние слияния.
Я не знаю о двух других: является ли «diff», сопровождаемый «patch», эквивалентным трехстороннему слиянию, или вместо этого, «patch» может только повторно применить diff к исходному файлу (а не к третья, измененная копия файла)
Можете ли вы порекомендовать для этой цели какое-либо программное обеспечение (из списка выше или в другом месте) и / или описание алгоритма слияния?
Редактировать: Сопоставление, различие и слияние XML - еще одна статья 2008 года, которая включает краткий обзор различных алгоритмов и ссылки на различные реализации.
Редактировать # 2: Автор подтвердил, что инструмент различий и исправлений Fuego Core XML может только пропатчить исходный файл и не реализует трехстороннее объединение.