簡體   English   中英

使用XML diff和merge進行版本控制

[英]Version Control with XML diff and merge

我正在尋找一個可以衍生和合並XML文件的開源版本控制工具。

我必須找到這樣一個工具的難點是,我需要正確合並XML文件,比較節點而不是行。

任何的想法? 謝謝!

不幸的是,這個問題沒有一個通用的解決方案。 XML diffing對你認為不同的東西非常敏感。 在一種情況下,子節點的順序可能很重要,而在另一種情況下(甚至可能在同一文件中)它可能是無關緊要的。

看看XMLUnit 盡管它的目標是單元測試,但它是一個完整的XML差分引擎。 您必須告訴它(在代碼中)如何確定兩個節點是否有資格進行比較,然后如何處理找到的所有潛在差異(即,在您的應用程序中它們是否真實)。 它檢測到“差異事件”的詳盡列表,包括

  • 屬性順序
  • 屬性數量
  • 子節點順序
  • 子節點數
  • 隱式vs顯式屬性值
  • 評論差異
  • doctype差異
  • 名稱空間差異

還有更多。 這些中的任何一個對您的應用程序都很重要或不重要,只有您可以自行決定。 值得一看,但需要一些工作來獲得你想要的東西。

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

我擔心它也不是免費的,但它比聲稱能夠比較和合並XML的其他工具便宜得多。

我過去使用過的東西是diffxml 您可以將此作為svn或git等VCS的diff命令使用。

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

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

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

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

對於虛擬/懶惰用戶來說,它應該是一個簡單的一體化工具。 API或控制台程序不適合。 看起來它確實在開源世界中不存在。

Clearcase可以做到,但它很昂貴。 氧氣可以合並,但也不是免費的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM