2010-08-05 49 views
10

我正在尋找一種可以區分和合並XML文件的開源版本控制工具。使用XML差異和合並進行版本控制

我不得不尋找這樣的工具的困難是,我需要正確合併比較節點而不是線條的XML文件。

有什麼想法? 謝謝!

+0

可能的解決方案:[免費的Xml比較/合併工具](http://stackoverflow.com/questions/1871076),[XML Diff和合並](http://stackoverflow.com/questions/430001) – 2011-08-22 13:45:47

回答

2

我以前用過的東西是diffxml。您可以將其用作svn或git等VCS的diff命令。

6

不幸的是,這個問題沒有一成不變的解決方案。 XML差異對您認爲不同的內容非常敏感。在一種情況下,子節點的順序可能很重要,而在另一種情況下(甚至可能在同一個文件中),它可能無關緊要。

看看XMLUnit。即使它是針對單元測試,它也是一個完整的XML差異引擎。你必須告訴它(在代碼中)如何確定兩個節點是否有資格進行比較,然後如何處理所有發現的潛在差異(即它們是否真實,在你的應用程序中)。它可以檢測「差事件」包括

  • 屬性爲了
  • 屬性數
  • 子節點順序
  • 號子節點的
  • 隱VS明確的屬性值
  • 評論的詳盡清單差異
  • 文檔類型差異
  • namespac e差異

還有一大堆。這些對您的應用程序來說可能都很重要或不重要,只有您可以決定。值得一看,但需要一些工作才能得到你想要的。

1

您正在尋找一個diff-tool,它只是VCS的一個子集。所有VCS'都可以使用外部程序來區分文件。由於外部diff工具可以是任何東西,它也可以是由您編寫的腳本,它可以用來解析和比較兩個xml文檔。

我不知道這是否讓您更容易找到您要找的東西,但它可能會。

-2

正如其他人指出,你只需要一個很好的diff工具而不是vcs。

不幸的是,我還沒有聽說任何支持xml的圖形差異工具。所以我會使用像(winmerge或k3diff)這樣的常規diff工具,然後使用任何你喜歡的xml驗證工具來驗證合併產生的xml。

-1

它應該是一個簡單的所有在一個工具爲虛擬/懶惰的用戶。 API或控制檯程序不適合。它看起來好像它不存在於開源世界中。

Clearcase可以做到這一點,但它是昂貴的。 Oxygen可以合併,但它也不是免費的。

+1

你應該可能會將其變成問題更新部分。這不是一個答案。 – firegurafiku 2017-04-03 11:52:38

+0

控制檯程序是完美的,只要它只需要一個命令 – Mike76 2017-08-18 06:20:00

2

Project: Merge旨在解決這個確切問題:通過SCM軟件比較和合並XML文件。

恐怕它也不是免費的,但它比聲稱可以比較和合並XML的其他工具要便宜得多。