कोई भी शालीन पाठ .NET के लिए अलग / मर्ज इंजन है [बन्द है]


108

आवश्यकताएँ:

  • मुक्त, अधिमानतः खुला स्रोत
  • .NET प्रबंधित langs में से एक में कार्यान्वित किया गया

Google ने ये पाया:

संपादित करें:

कोई एप्लिकेशन कृपया, केवल पुस्तकालयों।


5
यह धागा कुछ ही समय में तस्करी नहीं किया गया है, लेकिन जो खुला स्रोत अलग परियोजना आप अंत के साथ जा रहा था? मैं उसी के लिए देख रहा हूं और सूचीबद्ध पुस्तकालयों के अलावा मुझे बहुत कुछ नहीं मिला है (2 साल में इतना कम बदलाव आया है ...)।
14:75 बजे marr75

1
marr75: यहां आप [क्रेडिट टू चेसो / ब्रायन (नीचे उत्तर देखें)]: " Google डिफ / पैच / मर्ज कोड को C # में पोर्ट किया गया है। COM घटक अभी भी काम करता है, लेकिन यदि आप .NET से आ रहे हैं, तो आप। सीधे .NET पोर्ट का उपयोग करना चाहते हैं।
दवे

1
मैं मानता हूं कि यह उत्तर बहुत मददगार था, यह एक बहुत विशिष्ट प्रोग्रामिंग समस्या के लिए एक इंजन या एल्गोरिथ्म का अनुरोध कर रहा है, और मैंने इसे फिर से खोलने के लिए नामित किया।
म्लादेन मिहाजलोविक

जवाबों:


88

आप COM घटक को ले सकते हैं जो Google के डिफ / पैच / मैच का उपयोग करता है । यह .NET से काम करता है।

अपडेट, 2010 अक्टूबर 17 : Google डिफ / पैच / मर्ज कोड को C # में पोर्ट किया गया। COM घटक अभी भी काम करता है, लेकिन यदि आप .NET से आ रहे हैं, तो आप सीधे .NET पोर्ट का उपयोग करना चाहते हैं।


14
ऐसा लगता है कि इसे C # (पूर्ण प्रबंधित C # कार्यान्वयन) में पोर्ट किया गया है। Google पृष्ठ पर डाउनलोड अनुभाग में C # संस्करण उपलब्ध है। आप अपने उत्तर के "COM" बिट को संपादित कर सकते हैं। इस कार्यान्वयन के रूप में अच्छा लगता है (कम से कम अजगर / जेएस संस्करण) कुछ व्यापक रूप से उपयोग की जाने वाली परियोजनाओं जैसे कि Google डॉक्स में उपयोग किए जाते हैं।
ब्रायन लो

ब्रायन, धन्यवाद। मैंने जवाब अपडेट कर दिया है।
चीजो

6
2015 में बहुत उपयोगी उत्तर। कृपया हटाएं नहीं, यदि इस प्रकार की अनुमति दी गई है तो साइट अधिक उपयोगी होगी (पढ़ें: एक अन्य साइट इस बात की अनुमति देगी, और अधिक, और वृद्धि करें और विशेषज्ञों को एक्सचेंज में बदल दें यदि इस तरह के उपयोगी प्रश्न हैं SO faq में दोषपूर्ण परिकल्पना के आधार पर कारणों से बंद होते रहें)।
FastAl

1
मैं डिफ्लेक्स की सलाह देता हूं । यह netstandard1.0बहुत हल्का है। आप इसे RichTextBoxइस तरह से उपयोग करके आसानी से अपने WPF एप्लिकेशन में एम्बेड कर सकते हैं : github.com/halllo/WpfDiff
halllo

1
अधिक C # -centric पोर्ट (नामकरण, आवरण इत्यादि) इस प्रकार है: github.com/pocketberserker/Diff.Match.Pug। Nuget समर्थन के साथ:Install-Package Diff.Match.Patch
Kirk Woll

21

मुझे लगता है कि Codeproject पर "Generic - Reusable Diff Algorithm in C #" सबसे अच्छा है जो आप अंतर / पैच / मर्ज के लिए .NET-इंजन के रूप में पा सकते हैं। मैंने इसके साथ अपने दम पर एक परियोजना बनाई और यह अधिकांश परिदृश्यों के साथ मेरी जरूरतों को पूरा करता है। जब एक एल्गोरिथ्म पैच-फ़ाइल से बड़ा हो जाता है तो एक या दो सबसे खराब स्थिति वाले स्केनेसरो होते हैं। लेकिन ज्यादातर मामलों में यह मेरे लिए ठीक काम करता है (> 30 एमबी के आकार वाले टेक्स्टफाइल्स)।

मैं वर्तमान में एक और कोडप्रोजेक्ट-प्रोजेक्ट का परीक्षण कर रहा हूं जो आप यहां पा सकते हैं: http://www.codeproject.com/KB/applications/patch.aspx यह पैचिंग के लिए Microsoft से कुछ DLL का उपयोग कर रहा है, इसलिए यह दिलचस्प लग रहा है। लेकिन वे DLL अप्रबंधित हैं और यह परियोजना इसके लिए केवल कुछ प्रकार का आवरण है। लेकिन शायद यह आपकी मदद कर सकता है

संपादित करें: बस एक और परियोजना मिली, डिफ्लेक्स : http://diffplex.codeplex.com/ यह एक .NET डिफिंग लाइब्रेरी का संयोजन है जिसमें सिल्वरलाइट और एचटीएमएल दोनों अलग-अलग दर्शक हैं । जैसा कि वहां कहा गया है , डिफ्लेक्स वह लाइब्रेरी है जो कोडप्लेक्स फाइलों के अंतर को उत्पन्न करने का लाभ उठाती है।


जानकारी के लिए धन्यवाद! लेकिन मुझे और अधिक परिष्कृत समाधान खोजने की उम्मीद है। मैं बस विश्वास नहीं कर सकता कि कोई भी व्यक्ति कुछ साफ-सुथरा काम नहीं करता है
aku

1
जब आप एक बेहतर पुस्तकालय पाते हैं, तो कृपया हमें बताएं (या कम से कम मुझे ) - मैंने खुद को काफी खोजा और पहले से बताए गए के पास कुछ भी नहीं पाया।
एहीलेडिर

1
डिफ्लेक्स को github.com/mmanela/diffplex
कोडिंगवेव

5

GitSharp में एक अलग इंजन शामिल है जो कि मीयरों के अंतर पर आधारित है। डेमो पर एक नज़र डालें जो कि डिफेंस सेक्शन संग्रह के आधार पर एक साधारण wpf भिन्न दर्शक को लागू करता है: http://www.eqqon.com/index.php/GitSharp#GitSharp.Demo


5

अब तक कोई भी जवाब नहीं (संभवतः GitSharp संदर्भ को छोड़कर) 3-तरफा मर्ज से निपटता है, इसलिए मामले में यह किसी को भी मदद करता है जो मैंने हाल ही में टोनी गर्नॉक-जोन्स की जावास्क्रिप्ट डिस्क्रिप्ट 3 के कार्यान्वयन ( सिंक्रोट्रॉन प्रोजेक्ट से, हंट और मैकलॉयर 1976 पर आधारित) में किया था। से #।

यह अंतर और तीन-तरफ़ा मर्ज विधियों का एक सरल एकल-फ़ाइल पोर्ट है, लेकिन यह मानक एल्गोरिथ्म है और अब तक मेरे लिए बहुत अच्छा काम करता है: https://gist.github.com/2633407


मैं gist.github लिंक को हल नहीं कर सकता - मुझे आश्चर्य है कि अगर तीन तरीके मर्ज विधि को इस तरह से एक उपकरण में एकीकृत किया जा सकता है और क्या यह अलग-अलग परिणाम देता है या वास्तव में मायर्स डिफ एल्गोरिथम के रूप में ही लागू होता है?
user8276908
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.