2010-02-08 17 views
12

मैं XHTML दस्तावेजों की 3-ओर मर्ज करने के लिए सक्षम होना चाहता हूँ: दस्तावेज़ के कुछ मूल प्रति के साथ3-जिस तरह से एक्सएमएल मर्ज एल्गोरिथ्म

  1. प्रारंभ
  2. एक उपयोगकर्ता मूल की एक प्रति का संपादन करती दस्तावेज़
  3. कोई अन्य उपयोगकर्ता मूल दस्तावेज़ की एक अलग प्रति
  4. दो उपयोगकर्ताओं द्वारा किए गए परिवर्तनों को स्वचालित रूप से और/या दृष्टि से मर्ज करने के लिए टूल की आवश्यकता है।

नोट:

  • मैं वाणिज्यिक सॉफ्टवेयर में इस कार्यक्षमता शामिल करना चाहते हैं: तो मैं कुछ है कि निःशुल्क होता है-के रूप में-इन-बियर और/या खुला स्रोत, एक वाणिज्यिक उपकरण के बजाय पसंद करते हैं।
  • मुझे लगता है यह बेहतर है, तो उपकरण एक्सएमएल-बारे में पता है, की तुलना में diff3 जो फ्लैट पाठ
  • यह देखते हुए कि सभी तीन इनपुट दस्तावेज मान्य एक्सएचटीएमएल दस्तावेज हैं, जिसके परिणामस्वरूप उत्पादन दस्तावेज़ के 3-जिस तरह से मर्ज को लागू करता है जैसे सॉफ्टवेयर का उपयोग करने की कोशिश करने के सत्यापित करना चाहिए भी

उपकरण मैंने पाया शामिल हैं:

  1. The "3DM" XML 3-way Merging and Differencing Tool
  2. Fuego Core XML Diff and Patch Tool
  3. XmlDiff

ऊपर की पहली (हाल ही में GotDotNet साइट है जो बंद किया गया है, लेकिन शायद यह XML Notepad के एक घटक के रूप में पर रहने वाले है) (अर्थात "3 डीएम") स्पष्ट रूप से कहता है कि यह 3-तरफा विलय लागू करता है।

मुझे अन्य दो के बारे में पता नहीं है: "पैच" के बाद "diff" 3-तरफा विलय के बराबर है, या इसके बजाय "पैच" मूल फ़ाइल में भिन्नता को फिर से लागू कर सकता है (और नहीं फ़ाइल की एक तिहाई, बदली गई प्रतिलिपि)

क्या आप इस उद्देश्य के लिए कुछ सॉफ़्टवेयर (उपर्युक्त सूची में या अन्यत्र) से अनुशंसा कर सकते हैं, और/या मर्ज एल्गोरिदम का वर्णन?


संपादित करें: Matching, diffing and merging XML 2008 से एक अन्य लेख है, जो विभिन्न एल्गोरिदम और विभिन्न कार्यान्वयन के लिए संदर्भ का एक संक्षिप्त सर्वेक्षण में शामिल है।


# 2 संपादित करें: लेखक की पुष्टि की कि Fuego कोर एक्सएमएल Diff और पैच उपकरण केवल मूल फ़ाइल patche कर सकते हैं, और 3-जिस तरह से विलय को लागू नहीं करता है।

उत्तर

3

मैं आपके संग्रह DeltaXML में जोड़ सकता हूं - वे diff3 का दावा नहीं करते हैं, लेकिन विचार करने लायक हैं।

+0

धन्यवाद: वे XML के लिए अपने 3-तरफा विलय http://www.deltaxml.com/dxml/products/sync/index.html – ChrisW

3

मेरे पास एक मुफ्त समाधान नहीं है, मुझे डर है, लेकिन Project: Merge एक सस्ता एक्सएमएल तुलना और मर्ज टूल है जिसे कमांड लाइन के माध्यम से नियंत्रित किया जा सकता है। यह शायद सीधे आपके आवेदन में प्लग कर सकता है।

+1

पर पेश करते हैं, यह मुफ़्त नहीं हो सकता है लेकिन € 19 प्रति लाइसेंस पर भी यह हो सकता है हो। एक साफ छोटा सा उपकरण और नहीं, वे मुझे यह कहने के लिए भुगतान नहीं कर रहे हैं :) :) –

+0

यह मैंने देखा है कि यह सबसे अच्छा उपकरण है। हालांकि, उन्होंने इसे अद्यतन किया है और इसे 'ओएस एक्सएमएल मर्ज' नाम दिया है। धन्यवाद! – Adrian

1

एक स्वतंत्र विकल्प

$ xmlstarlet fo before.xml > before.xml 
$ xmlstarlet fo after.xml > after.xml 

करने के लिए किया जाएगा और उसके बाद

$ diff before.xml after.xml 

कर एक्सएमएल अंतर का एक पैच बनाने के लिए। यह मुफ़्त और सरल है।

संबंधित मुद्दे