टेक्स्ट की तुलना कैसे करें और अंतर कैसे खोजें

· 5 मिनट पढ़ने का समय

दस्तावेज़, कॉन्फ़िग फ़ाइल, या कोड के दो संस्करणों के बीच क्या बदला यह ढूंढना एक सामान्य कार्य है। दोनों संस्करणों को पढ़ना और मैन्युअल रूप से अंतर देखना धीमा और अविश्वसनीय है, खासकर लंबे टेक्स्ट के साथ। एक diff चेकर तुरंत यह करता है और हर परिवर्तन को हाइलाइट करता है। वही एल्गोरिथम जो Git के कमिट इतिहास, GitHub के पुल-रिक्वेस्ट समीक्षा इंटरफ़ेस, और Unix diff कमांड को शक्ति देता है, हर दृश्य diff टूल का आधार है जो आपने कभी उपयोग किया है।

टेक्स्ट की तुलना कैसे करें

  1. दोनों संस्करण चिपकाएँ: बाईं ओर मूल टेक्स्ट और दाईं ओर संशोधित टेक्स्ट दर्ज करें।
  2. हाइलाइट की समीक्षा करें: जोड़ी गई पंक्तियाँ हरे रंग में दिखाई जाती हैं, हटाई गई पंक्तियाँ लाल रंग में। संशोधित पंक्तियाँ दोनों पुराने और नए संस्करण दिखाती हैं।
  3. निर्यात या कॉपी करें: diff परिणाम कॉपी करें या एक रिपोर्ट डाउनलोड करें।

तुलना तुरंत होती है जैसे ही दोनों फलकों में टेक्स्ट होता है। क्लिक करने के लिए कोई तुलना बटन नहीं है; किसी भी तरफ संपादन वास्तविक समय में diff को फिर से चलाते हैं, जो उपयोगी है जब आप एक फिक्स पर इटरेट कर रहे हों और तुरंत प्रभाव देखना चाहते हों।

एक diff पढ़ना

diff आउटपुट एक सरल रंग प्रणाली का उपयोग करता है:

यह वही परंपरा है जो Git, GitHub, GitLab, Bitbucket, और हर प्रमुख संस्करण नियंत्रण प्रणाली द्वारा उपयोग की जाती है। रंग मनमाने नहीं हैं: 1970 के दशक से जब पहले दृश्य diff टूल (जैसे sdiff कमांड) Unix पर भेजे गए थे, जोड़ने के लिए हरा और हटाने के लिए लाल मानक रहा है। आधुनिक टूल कभी-कभी "बदला हुआ" (एक पंक्ति जो दोनों में मौजूद है लेकिन अलग है) के लिए पीला या नारंगी जोड़ते हैं, लेकिन लाल और हरा सार्वभौमिक जोड़/हटाव बने रहते हैं।

diff का एक संक्षिप्त इतिहास

diff एल्गोरिथम पहली बार 1976 में बेल लैब्स में Douglas McIlroy द्वारा प्रकाशित किया गया था, Eugene Myers के बाद के परिशोधन (O(ND) एल्गोरिथम, 1986) पर निर्मित जिसने diff को इंटरैक्टिव उपयोग के लिए पर्याप्त तेज़ बनाया। McIlroy का मूल एल्गोरिथम 1979 में Unix V7 रिलीज़ के साथ प्रकाशित हुआ और तब से हर Unix-जैसी ऑपरेटिंग सिस्टम का हिस्सा रहा है। Myers एल्गोरिथम वही है जो आधुनिक diff कार्यान्वयनों को शक्ति देता है: Git का diff, GitHub का वेब इंटरफ़ेस, Beyond Compare से VS Code तक हर diff GUI।

दृश्य साइड-बाय-साइड diff प्रारूप एल्गोरिथम से पहले का है: यह प्रकाशन में मैन्युअल प्रूफरीडिंग सम्मेलनों से जुड़ा है (दो कॉलम टेक्स्ट दिखाते हुए जिनमें परिवर्तन हाशिये में चिह्नित होते हैं)। 1970 के दशक के सॉफ़्टवेयर ने बस वही स्वचालित किया जो संपादक सदियों से कागज़ पर कर रहे थे। "एकीकृत diff" प्रारूप (जो पैच फ़ाइलों में --- और +++ हेडर वाला है जो आप देखते हैं) 1990 में GNU diff द्वारा पेश किया गया था और अब टेक्स्ट द्वारा परिवर्तन साझा करने के लिए वास्तविक मानक है।

diff जाँच कब उपयोगी है

पंक्ति-आधारित बनाम वर्ण-आधारित diff

diff चेकर पंक्ति-आधारित तुलना का उपयोग करता है, जिसका अर्थ है कि यह प्रत्येक पंक्ति को अंतर की सबसे छोटी इकाई के रूप में मानता है। यदि आप एक पंक्ति पर एक ही शब्द बदलते हैं, तो पूरी पंक्ति बदली हुई दिखाई जाती है (पुरानी पंक्ति लाल में, नई पंक्ति हरे में) और आपको शब्द-स्तरीय अंतर स्वयं देखना होगा।

पंक्ति-आधारित diff कोड और कॉन्फ़िगरेशन फ़ाइलों के लिए मानक है क्योंकि वे आमतौर पर पंक्ति-उन्मुख हैं (प्रति पंक्ति एक स्टेटमेंट, प्रति पंक्ति एक कॉन्फ़िग विकल्प)। यह तेज़, अनुमानित है, और Git और हर कोड समीक्षा टूल के काम करने के तरीके से मेल खाता है।

गद्य तुलना के लिए जहाँ पंक्ति-स्तरीय परिवर्तन बहुत मोटे हैं, कुछ टूल शब्द-स्तरीय या वर्ण-स्तरीय diff प्रदान करते हैं जो एक पंक्ति के भीतर केवल बदले गए शब्दों को हाइलाइट करता है। यह अधिक सटीक है लेकिन कोड के लिए पढ़ना कठिन है। यदि आपको शब्द-स्तरीय diff चाहिए, तो "word diff" या "intra-line diff" के रूप में विशेष रूप से लेबल किए गए टूल खोजें।

गोपनीयता और गोपनीय सामग्री

diff चेकर पूरी तरह से आपके ब्राउज़र में चलता है। दोनों टेक्स्ट के टुकड़े आपके डिवाइस पर रहते हैं; कुछ भी अपलोड नहीं किया जाता। यह मायने रखता है क्योंकि वह टेक्स्ट जिसे आप सबसे ज़्यादा तुलना करना चाहते हैं वह अक्सर गोपनीय होता है: बातचीत के तहत अनुबंध, प्रेस विज्ञप्ति के मसौदे, आंतरिक नीति दस्तावेज़, NDA के तहत स्रोत कोड। क्लाउड diff टूल (DiffChecker.com, JsonDiff.com, ऑनलाइन मर्ज टूल) के लिए दोनों टेक्स्ट को तीसरे पक्ष के सर्वर पर अपलोड करने की आवश्यकता होती है, जो ठीक वही है जो आप संवेदनशील सामग्री के लिए बचना चाहते हैं। ब्राउज़र-आधारित diff में इनमें से कोई भी एक्सपोज़र नहीं है।

सत्र भी स्टेटलेस है: टैब बंद करने के बाद कुछ भी बना नहीं रहता। यदि आपको diff का रिकॉर्ड रखना है, तो दूर नेविगेट करने से पहले आउटपुट कॉपी करें या स्क्रीनशॉट लें।

सामान्य त्रुटियाँ

सुझाव

अक्सर पूछे जाने वाले प्रश्न

क्या diff वर्ण-दर-वर्ण तुलना करता है?

यह पंक्ति-दर-पंक्ति तुलना करता है, Git और अधिकांश पेशेवर diff टूल्स की समान दृष्टिकोण। यदि एक पंक्ति पर एक भी वर्ण बदलता है, तो पूरी पंक्ति बदली हुई के रूप में हाइलाइट होती है।

क्या कोई आकार सीमा है?

कोई सख्त सीमा नहीं, लेकिन बहुत बड़े टेक्स्ट (10,000 से अधिक पंक्तियाँ) प्रोसेस होने में एक पल ले सकते हैं क्योंकि तुलना पूरी तरह आपके ब्राउज़र में चलती है।

क्या मैं कोड फ़ाइलों की तुलना कर सकता हूँ?

हाँ। diff किसी भी टेक्स्ट के साथ काम करता है, जिसमें सोर्स कोड शामिल है। सिंटैक्स हाइलाइटिंग कोड diff को आसानी से पढ़ने में मदद करती है।

क्या मेरा टेक्स्ट किसी सर्वर पर भेजा जाता है?

नहीं। तुलना आपके ब्राउज़र में होती है। आपका टेक्स्ट कभी आपके डिवाइस से बाहर नहीं जाता।