संपादन को संयोजित करने से पहले Mac पर दो टेक्स्ट फ़ाइलों की तुलना करने के लिए, सबसे पहले दोनों संस्करणों की अलग-अलग प्रतियां बनाएं, फिर Terminal के diff कमांड या Visual Studio Code या BBEdit जैसे विज़ुअल तुलना टूल के साथ उनके अंतरों की जांच करें। यह तुलना दिखाती है कि क्या बदला है; आपको अभी भी यह तय करना होगा कि किन बदलावों को रखना है और जब तक आप इसकी जांच न कर लें, तब तक मर्ज किए गए परिणाम को एक नई फ़ाइल के रूप में सहेजना होगा।

दोनों संस्करण तैयार करें

दोनों फ़ाइलों को किसी ऐसी जगह रखें जहां से उन्हें ढूंढना आसान हो, जैसे कि Desktop या कोई अस्थायी (temporary) फ़ोल्डर। पुष्टि करें कि कौन सा संस्करण पुराना या मूल (base) है और किसमें नए संपादन शामिल हैं। यदि दोनों फ़ाइलें स्वतंत्र रूप से बदली गई हैं, तो ध्यान रखें कि उनमें से कोई भी आवश्यक रूप से सही अंतिम संस्करण का प्रतिनिधित्व नहीं करती है।

मर्ज करने से पहले, Finder में मूल फ़ाइलों की डुप्लिकेट प्रतियां बनाएं या इसका समर्थन करने वाले ऐप में File > Duplicate का उपयोग करें। प्रतियों को स्पष्ट नाम दें, जैसे कि draft-original.txt, draft-edited.txt, और बाद में draft-merged.txt। यदि आप गलती से किसी सामग्री को ओवरराइट कर देते हैं, तो इससे आपको वापस लौटने का रास्ता मिलता है। जांचें कि दोनों फ़ाइलें प्लेन टेक्स्ट हैं और आप इच्छित जोड़ी की ही तुलना कर रहे हैं; फ़ॉर्मेट किए गए दस्तावेज़ों में ऐसी संरचना हो सकती है जिसे प्लेन टेक्स्ट तुलना द्वारा नहीं दर्शाया जा सकता।

diff के साथ Terminal में फ़ाइलों की तुलना करें

macOS के कमांड लाइन का उपयोग करके त्वरित तुलना के लिए, Terminal खोलें और diff -u टाइप करें, कमांड के बाद एक स्पेस छोड़ें। पहली फ़ाइल को Finder से Terminal विंडो में खींचें (ड्रैग करें), एक स्पेस टाइप करें, दूसरी फ़ाइल को अंदर खींचें, फिर Return दबाएं। यह कमांड दोनों फ़ाइलों की सामग्री की तुलना करता है और आसपास के संदर्भ (context) के साथ एक एकीकृत अंतर (unified difference) प्रदर्शित करता है। पहला पथ (path) शुरुआती संस्करण है; दूसरा वह संस्करण है जिसकी तुलना उससे की जा रही है। Apple का diff मैन्युअल पृष्ठ कमांड और इसके एकीकृत आउटपुट विकल्प का दस्तावेजीकरण करता है।

diff -u /path/to/first.txt /path/to/second.txt

आउटपुट में, - से शुरू होने वाली पंक्तियाँ पहली फ़ाइल में दिखाई देती हैं लेकिन दूसरी में नहीं; + से शुरू होने वाली पंक्तियाँ दूसरी फ़ाइल में दिखाई देती हैं लेकिन पहली में नहीं। बिना किसी मार्कर वाली पंक्तियाँ संदर्भ हैं। @@ से शुरू होने वाला हेडर किसी बदले गए हिस्से के लिए अनुमानित पंक्ति सीमा (line range) की पहचान करता है। यदि Terminal कोई अंतर आउटपुट प्रदर्शित नहीं करता है, तो फ़ाइलें एक समान मानी जाती हैं। ऐसा परिणाम जो यह कहता है कि फ़ाइलों में अंतर है लेकिन पठनीय पंक्तियाँ नहीं दिखाता है, इसका मतलब यह हो सकता है कि इनपुट को सामान्य टेक्स्ट के रूप में नहीं माना जा रहा है।

यह आउटपुट समीक्षा के लिए एक सहायता है, कोई मर्ज किया गया दस्तावेज़ नहीं। अपने अंतिम फ़ाइल में diff मार्कर पेस्ट न करें। संदर्भ में प्रत्येक बदले गए ब्लॉक को पढ़ें, तय करें कि संयुक्त संस्करण में क्या होना चाहिए, फिर एक टेक्स्ट एडिटर में एक प्रति को संपादित करें और इसे एक नए नाम से सहेजें। यदि फ़ाइलों में कई ओवरलैपिंग संपादन हैं, तो आमतौर पर एक विज़ुअल diff एडिटर की समीक्षा करना आसान होता है।

आसान समीक्षा के लिए विज़ुअल तुलना का उपयोग करें

Visual Studio Code में, एक फ़ाइल खोलें, फिर Command Palette का उपयोग करें और दूसरी फ़ाइल का चयन करने के लिए File: Compare Active File With... चुनें। वैकल्पिक रूप से, Explorer में, एक फ़ाइल पर राइट-क्लिक करें और Select for Compare चुनें, फिर दूसरी फ़ाइल पर राइट-क्लिक करें और Compare with Selected चुनें। VS Code परिवर्तनों की समीक्षा के लिए एक diff एडिटर प्रदर्शित करता है। इसका दस्तावेज़ीकरण सक्रिय फ़ाइल की तुलना सहेजे गए संस्करण या क्लिपबोर्ड से करने का भी वर्णन करता है। Visual Studio Code के फ़ाइल तुलना निर्देश इन विकल्पों को सूचीबद्ध करते हैं।

BBEdit एक अन्य Mac-उन्मुख मार्ग प्रदान करता है: Search > Find Differences चुनें, तुलना विंडो में दोनों फ़ाइलें प्रदान करें, और तुलना शुरू करें। इसका वर्तमान तुलना चार्ट अपनी विशेषताओं में फ़ाइल तुलना और वर्ण-स्तरीय (character-level) अंतर प्रदर्शन को सूचीबद्ध करता है। BBEdit का फ़ीचर तुलना चार्ट उपलब्ध Find Differences क्षमता का वर्णन करता है।

चाहे आप किसी भी ऐप का उपयोग करें, तुलना का शुरू से अंत तक निरीक्षण करें। पंक्तियों को जोड़े या हटाए जाने पर टेक्स्ट के समान ब्लॉक इधर-उधर स्थानांतरित हो सकते हैं, इसलिए यह न मान लें कि दृष्टिगत रूप से आसन्न परिवर्तन एक ही संपादन से संबंधित है। विराम चिह्न, खाली पंक्तियों, वर्तनी और दोहराए गए अनुभागों की भी जांच करें: छोटे अंतर भी अर्थ या स्वरूपण (formatting) को बदल सकते हैं।

सोच-समझकर मर्ज करें और सहेजे गए परिणाम को सत्यापित करें

प्रत्येक बदलाव पर काम करें और चुनें कि पहला संस्करण रखना है, दूसरा, या दोनों का संयोजन। जब दोनों फ़ाइलें एक ही वाक्य या पैराग्राफ़ को बदलती हैं, तो आसपास के पाठ के साथ दोनों संपादनों को पढ़ें और उन्हें स्वयं हल करें। दो-फ़ाइल तुलना केवल अंतरों की पहचान करती है; यह नहीं बता सकती कि स्वतंत्र रूप से संपादित कौन सा संस्करण इच्छित अंतिम अर्थ को व्यक्त करता है।

संयुक्त पाठ को एक तीसरी फ़ाइल में सहेजें। फिर उस सहेजी गई फ़ाइल को फिर से खोलें और उन क्षेत्रों को स्कैन करें जिन्हें आपने बदला है। यदि आप पुष्टि करना चाहते हैं कि यह किसी एक स्रोत से पूरी तरह मेल खाता है, तो उसी टूल का उपयोग करके सहेजे गए परिणाम की तुलना उस स्रोत से करें। जब तक आप परिणाम से संतुष्ट न हो जाएं, तब तक मूल फ़ाइलों को अपने पास रखें।

यह कार्यप्रवाह दो टेक्स्ट फ़ाइलों के लिए है। एक विज़ुअल diff आवश्यक रूप से थ्री-वे मर्ज नहीं होता है: जब दो लोगों ने एक साझा मूल संस्करण को संपादित किया हो, तो आपको स्वतंत्र परिवर्धनों को परस्पर विरोधी संपादनों से अलग करने के लिए उस मूल संस्करण की भी आवश्यकता हो सकती है। यदि फ़ाइलें रिच-टेक्स्ट या एप्लिकेशन-विशिष्ट दस्तावेज़ हैं, तो जहां उपलब्ध हो, दस्तावेज़ ऐप की अपनी तुलना या संशोधन सुविधाओं का उपयोग करें; उन्हें प्लेन टेक्स्ट में बदलना या निर्यात करना फ़ॉर्मेटिंग या संरचना को छोड़ सकता है।

स्रोत