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