डिफ3

डिफ3 (diff3) तीन फ़ाइलों की तुलना करने और उनके बीच कोई अंतर दिखाने के लिए एक यूनिक्स उपयोगिता है। डिफ3 तीन-तरफ़ा मर्ज को लागू करते हुए फ़ाइलों को मर्ज (संशोधन नियंत्रण) भी कर सकता है।

इतिहास और कार्यान्वयन
diff3 मूल रूप से 1979 के संस्करण 7 यूनिक्स में दिखाई दिया था। एक बहुत ही समान संस्करण बर्कले सॉफ्टवेयर वितरण  (बीएसडी) में पाया गया था और इसे ओपनबीएसडी और शायद सोलारिस (ऑपरेटिंग सिस्टम) में विरासत में मिला था।

अधिकांश आधुनिक यूनिक्स-जैसी प्रणालियों पर, यहां तक ​​कि फ्रीबीएसडी (FreeBSD) और नेटबीएसडी (NetBSD) जैसे बीएसडी-व्युत्पन्न प्रणालियों पर भी, प्रदान किया गया diff3, diffutils (पूर्व में GNU टूल्स) में GNU का संस्करण है। इस संस्करण में बिना किसी पर निर्भर हुए फ़ाइलों को अपने आप मर्ज करने की क्षमता है ed. यह आंतरिक रूप से आह्वान करता है diff तुलना करने के लिए, लेकिन किसी अन्य संगत उपकरण का भी उपयोग कर सकते हैं।

यह कमांड सामान्य जीएनयू यूनिक्स जैसी उपयोगिताओं के मूल (कंप्यूटिंग) विंडोज़ एपीआई में पोर्टिंग के अनएक्सयूटिल्स (UnxUtils) संग्रह के हिस्से के रूप में माइक्रोसॉफ़्ट विंडोज़ के लिए एक अलग पैकेज के रूप में उपलब्ध है।

 डिफ3  थ्री-वे-मर्ज एल्गोरिदम के लिए एक सामान्य नाम भी बन गया है, विशेष रूप से यह पहले स्रोत से उत्पन्न दो अलग-अलग अंतरों को समेटने पर आधारित है।

एक सामान्य अन्सेस्टर (रूप) से विलय
जब दो लोगों ने एक ही फ़ाइल की प्रतियों में परिवर्तन किए हैं, तो डिफ3 एक मर्ज किए गए आउटपुट का उत्पादन कर सकता है जिसमें विरोधों के बारे में चेतावनियों के साथ परिवर्तनों के दोनों सेट सम्मिलित हैं। डिफ3 एक समय में दो परिवर्तन सेटों को मर्ज करके फ़ाइल में परिवर्तनों के तीन या अधिक सेटों को मर्ज कर सकता है।

डिफ3 दो संशोधित संस्करणों से एक सामान्य पूर्ववर्ती संस्करण में परिवर्तन सम्मिलित कर सकता है। यह उपयोगकर्ताओं को दो नई फ़ाइलों द्वारा दर्शाए गए परिवर्तनों के सेट को मर्ज करने में सक्षम बनाता है। इसे इस तरह एक कमांड का उपयोग करके सक्षम किया जा सकता है:.

यह फ़ाइल को घटाने जैसा है  फ़ाइल से   और परिणाम को फ़ाइल में जोड़ रहा हूँ , या विलय के रूप में   जो परिवर्तन होंगे   में. यह विलय तब तक सु-परिभाषित है  और   ऐसे प्रत्येक परिवर्तन के पड़ोस में मिलान करें। यह तब सत्य होने में विफल रहता है जब तीनों इनपुट फ़ाइलें भिन्न हों या केवल तभी   भिन्न; यह एक विरोध (कनफ्लिक्ट) है. जब तीनों इनपुट फ़ाइलें भिन्न होती हैं, तो विरोध एक ओवरलैप होता है।

डिफ3 में ओवरलैप्स और विरोधों को संभालने के लिए कई तरीके हैं। यह ओवरलैप या विरोध को छोड़ सकता है, या केवल ओवरलैप का चयन कर सकता है, या विशेष के साथ टकराव को चिह्नित कर सकता है  और   पंक्तियाँ.

डिफ3 मर्ज (संशोधन नियंत्रण) परिणामों को एक एड (यूनिक्स) स्क्रिप्ट (ed script) के रूप में आउटपुट कर सकता है जिसे मर्ज किए गए आउटपुट को प्राप्त करने के लिए पहली फ़ाइल पर लागू किया जा सकता है। हालाँकि, मर्ज किए गए आउटपुट को सीधे जनरेट करने से एड के साथ कुछ समस्याएं दूर हो जाती हैं।

यह भी देखें

 * अंतर

बाहरी संबंध

 * A formal investigation of Diff3
 * GNU diffutils manual, "Comparing Three Files" and "Merging from a common ancestor"