【发布时间】:2011-03-26 00:06:02
【问题描述】:
我正在寻找一种可以区分和合并 XML 文件的开源版本控制工具。
我必须找到这样一个工具的困难在于,我需要正确合并一个比较节点而不是行的 XML 文件。
有什么想法吗? 谢谢!
【问题讨论】:
标签: xml merge controls diff version
我正在寻找一种可以区分和合并 XML 文件的开源版本控制工具。
我必须找到这样一个工具的困难在于,我需要正确合并一个比较节点而不是行的 XML 文件。
有什么想法吗? 谢谢!
【问题讨论】:
标签: xml merge controls diff version
我过去使用的东西是diffxml。您也许可以将其用作 svn 或 git 等 VCS 的 diff 命令。
【讨论】:
很遗憾,对于这个问题,没有万能的解决方案。 XML diffing 对您认为不同的内容非常敏感。在一种情况下,子节点的顺序可能很重要,而在另一种情况下(甚至可能在同一个文件中),它可能无关紧要。
看看XMLUnit。尽管它是针对单元测试的,但它是一个完整的 XML 差异引擎。您必须(在代码中)告诉它如何确定两个节点有资格进行比较,然后如何处理发现的所有潜在差异(即它们在您的应用程序中是否真实)。它检测到“差异事件”的详尽列表,包括
还有更多。其中任何一个对您的应用程序可能重要或不重要,只有您可以决定。值得一看,但需要一些工作才能得到你想要的。
【讨论】:
您正在寻找一个差异工具,它只是 VCS 的一个子集。所有 VCS 都可以使用外部程序来区分文件。由于外部 diff-tool 可以是任何东西,也可以是您编写的脚本,专门用于解析和比较两个 xml 文档。
我不知道这是否能让您更轻松地找到所需内容,但它可能会。
【讨论】:
正如其他人指出的那样,您只需要一个好的 diff 工具而不是 vcs。
不幸的是,我还没有听说过任何支持 xml 的图形差异工具。所以我会使用像(winmerge 或 k3diff)这样的常规 diff 工具,然后我会使用你喜欢的任何 xml 验证工具来验证合并产生的 xml。
【讨论】:
对于傻瓜/懒惰的用户来说,它应该是一个简单的多合一工具。 API 或控制台程序不适合。看起来它在开源世界中确实不存在。
Clearcase 可以,但是太贵了。 Oxygen 可以合并,但也不是免费的。
【讨论】:
Project: Merge 旨在解决这个确切的问题:通过 SCM 软件比较和合并 XML 文件。
恐怕它也不是免费的,但它比其他声称能够比较和合并 XML 的工具便宜得多。
【讨论】: