Управление версиями с разностью XML и слиянием

Я ищу инструмент управления версиями с открытым исходным кодом, который может разность и объединять XML-файлы.

Трудность я должен найти такой инструмент, что мне нужно корректное слияние XML-файла, сравнивающего узлы а не строки.

Какая-либо идея?Спасибо!

9
задан myborobudur 5 August 2010 в 19:19
поделиться

6 ответов

В прошлом я использовал diffxml. Вы можете использовать его в качестве команды diff для VCS, например svn или git.

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

Вы ищете инструмент сравнения, который является лишь подмножеством того, что такое VCS. Все VCS могут использовать внешнюю программу для сравнения файлов. Поскольку внешний инструмент сравнения может быть любым, это также может быть написанный вами скрипт, предназначенный для анализа и сравнения двух XML-документов.

Не знаю, облегчит ли это вам поиск того, что вы ищете, но может.

1
ответ дан 4 December 2019 в 22:26
поделиться

Это должен быть простой универсальный инструмент для фиктивных / ленивых пользователей. API или консольные программы не подходят. Похоже, что его не существует в мире открытого кода.

Clearcase может это сделать, но это слишком дорого. Кислород может сливаться, но он тоже не бесплатный.

-2
ответ дан 4 December 2019 в 22:26
поделиться

К сожалению, универсального решения этой проблемы не существует. Различия в XML очень чувствительны к тому, что ВЫ считаете другим. В одном случае порядок дочерних узлов может быть важен, а в другом случае (возможно, даже в том же файле) он может быть неактуальным.

Взгляните на XMLUnit . Несмотря на то, что он нацелен на модульное тестирование, это полноценный механизм сравнения XML. Вы должны указать (в коде), как определить, что два узла подходят для сравнения, а затем, что делать со всеми обнаруженными потенциальными различиями (т.е. настоящими они или нет в вашем приложении). Он обнаруживает исчерпывающий список «событий различий», включая

  • Порядок атрибутов
  • Количество атрибутов
  • Порядок дочерних узлов
  • количество дочерних узлов
  • неявные и явные значения атрибутов
  • различия в комментариях
  • различия в типах документов
  • различия в пространствах имен

И многое другое. Любой из них может быть важным или неважным для вашего приложения, и решать только вам. На него стоит взглянуть, но чтобы получить то, что вы хотите, потребуется определенная работа.

6
ответ дан 4 December 2019 в 22:26
поделиться

Как указывали другие, вам просто нужен хороший инструмент сравнения, а не vcs.

К сожалению, я не слышал ни о каком графическом инструменте сравнения, поддерживающем xml. Поэтому я бы использовал обычный инструмент сравнения, например (winmerge или k3diff), а затем я бы проверял XML, полученный в результате слияния, с помощью любого инструмента проверки XML, который вам нравится.

-2
ответ дан 4 December 2019 в 22:26
поделиться

Проект: Merge был разработан для решения именно этой проблемы: сравнения и слияния XML-файлов с помощью программного обеспечения SCM.

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

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

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