डेवलपर टूल · पाठ तुलना
एकीकृत अंतर को कैसे पढ़ें: हंक हेडर, संदर्भ पंक्तियाँ और +/- मार्कर
· पेजभूमि
पाठ-अंतर पैच डेवलपर-वर्कफ़्लो
फ़ाइल हेडर और @@ हंक रेंज से लेकर संदर्भ लाइनों और परिवर्तन मार्करों तक, एकीकृत अंतर प्रारूप को लाइन दर लाइन डीकोड करता है, इसलिए किसी भी टूल से पैच समझ में आता है।
प्लसस, माइनस और @@ प्रतीकों की एक दीवार - ईमेल या पुल अनुरोध में पैच के साथ पहली मुठभेड़ के साथ खुलती है
डाउनलोड किया गया `changes.patch` विराम चिह्न से शुरू होता है जो परिचित भिन्न आउटपुट जैसा दिखता है, लेकिन इसकी सटीक संरचना मायने रखती है। ToolAcre दो लेबल लिखता है और फिर प्रत्येक तुलना पंक्ति को एक-वर्ण मार्कर के साथ लिखता है। जो मौजूद है उसे पढ़ना किसी अन्य पैच प्रारूप से फ़ील्ड को मानसिक रूप से आपूर्ति करने से अधिक सुरक्षित है।
फ़ाइल को सादे-पाठ एडिटर में खोलें। पहली दो पंक्तियाँ UI द्वारा आपूर्ति किए गए बाएँ और दाएँ लेबल को `original` और `changed` के रूप में पहचानती हैं। बाद की पंक्तियाँ संदर्भ, निष्कासन और अतिरिक्त मार्करों के माध्यम से तुलना किए गए पाठों का पुनर्निर्माण करती हैं।
फ़ाइल हेडर पंक्तियाँ - --- और +++ पंक्तियाँ, पथ और a/ और b/ उपसर्ग टूल जोड़ने की व्याख्या करती हैं
हेडर `--- original` है और उसके बाद `+++ changed` है। अन्य टूलों में वे उपसर्ग एक समृद्ध पैच व्याकरण के भीतर बैठ सकते हैं, लेकिन यह निर्यातक कोई टाइमस्टैम्प, पथ या मेटाडेटा नहीं जोड़ता है। लेबल पक्षों का वर्णन करते हैं, डिस्क पर मौजूद साबित फ़ाइलों का नहीं।
यह अंतर मायने रखता है क्योंकि टेक्स्ट डिफ फ़ाइल ऑब्जेक्ट के बजाय चिपकाए गए स्ट्रिंग को स्वीकार करता है। डाउनलोड तुलना के बाद एक स्थानीय पाठ्य रिपोर्ट बनाता है। लेबल को रिपॉजिटरी पथ या संशोधन पहचानकर्ता के रूप में मानने से उस उत्पत्ति का पता चलेगा जिसे UI ने कभी एकत्र नहीं किया।
हंक हेडर की व्याख्या - प्रत्येक पक्ष के लिए स्टार्ट लाइन और लाइन काउंट के रूप में @@ -12,7 +12,8 @@ को डिकोड करता है
`toUnifiedText` में `@@` से शुरू होने वाली कोई पंक्ति नहीं है। फ़ंक्शन दो लेबल के बाद सभी पंक्तियों पर सीधे मैप करता है। नतीजतन, इस आउटपुट में डिकोड करने के लिए कोई हंक रेंज नहीं है और डाउनलोड किए गए टेक्स्ट में कोई स्टार्ट-लाइन/count जोड़े एम्बेडेड नहीं हैं।
पंक्ति संख्याएँ रेंडर किए गए ब्राउज़र दृश्य में उपलब्ध रहती हैं, जहाँ पंक्तियाँ बाएँ और दाएँ स्थान पर होती हैं। निर्यात एक सरल प्रतिनिधित्व चुनता है। यदि डाउनस्ट्रीम प्रोग्राम को मानक-पूर्ण एकीकृत हंक की आवश्यकता होती है, तो यह मानने के बजाय संगतता सत्यापित करें कि `.patch` एक्सटेंशन लापता सिंटैक्स की आपूर्ति करता है।
ToolAcre कोई @@ हंक हेडर उत्सर्जित नहीं करता है, इसलिए डिकोड करने के लिए कोई नहीं है
अग्रणी स्थान एक अपरिवर्तित पंक्ति को चिह्नित करता है, माइनस बाईं ओर से हटाने को चिह्नित करता है, और प्लस दाईं ओर जोड़ने को चिह्नित करता है। UI लंबे समय तक समान रन को दृष्टिगत रूप से संक्षिप्त कर सकता है, लेकिन `lastDiff` पूर्ण परिणाम को बरकरार रखता है और डाउनलोड सभी पंक्तियों को क्रमबद्ध करता है। कोई स्किप मार्कर पैच स्ट्रिंग में प्रवेश नहीं करता है।
रूपरेखा में डिफ़ॉल्ट के रूप में तीन संदर्भ पंक्तियों का उल्लेख किया गया है। तीन का उपयोग दृश्य पतन कॉल द्वारा किया जाता है, निर्यात द्वारा नहीं। उन पथों को मिलाने से डाउनलोड की गई सामग्री कमतर हो जाएगी। प्रस्तुतिकरण और क्रमांकन पंक्तियाँ साझा करते हैं लेकिन विभिन्न परिवर्तन लागू करते हैं।
डाउनलोड प्रत्येक पंक्ति को चिह्नित करता है और तीन-पंक्ति संदर्भ डिफ़ॉल्ट का उपयोग नहीं करता है
बाईं ओर `a b` और दाईं ओर `a c` की तुलना करें। एक्सपोर्ट की लाइनों में पहले दो लेबल, फिर space-a, minus-b और plus-c आते हैं। ऊपर से नीचे पढ़ने पर पता चलता है कि `a` बचता है, `b` मूल से हटता है और `c` बदले हुए हिस्से में जुड़ता है।
इसलिए जब संरेखण उन्हें एक साथ रखता है तो एक संशोधन को आसन्न हटाने और जोड़ने के रूप में दर्शाया जाता है। प्रारूप में इसे "संशोधित" नाम नहीं दिया गया है। यदि दोहराई गई पंक्तियाँ एक और संरेखण की अनुमति देती हैं, तो प्रत्येक इनपुट पंक्ति के लिए लेखांकन करते समय अनुक्रम अलग दिख सकता है।
व्यावहारिक उदाहरण: पूर्ण पैच-आकार की स्ट्रीम पढ़ें जिसे ToolAcre वास्तव में निर्यात करता है
सामान्य, संदर्भ और पूर्ण एकीकृत भिन्न प्रारूपों की अपनी विशिष्टताएं और इतिहास होते हैं, लेकिन उन्हें यहां उपयोग किए गए स्रोत सेट द्वारा कार्यान्वित या प्रलेखित नहीं किया जाता है। यह आलेख यह दावा नहीं करता कि एक प्रारूप लोकप्रिय क्यों हो गया या सूची फ़ील्ड ToolAcre उत्सर्जित नहीं होती।
जब किसी अन्य टूल को पैच लागू करना हो तो संस्करण-नियंत्रण कमांड का उपयोग करें। ToolAcre का डाउनलोड एक पोर्टेबल समीक्षा आर्टिफैक्ट के रूप में उपयोगी है, फिर भी रिपॉजिटरी में कोई पैच पार्सर या लागू फ़ंक्शन नहीं है जो साबित करता है कि यह मनमाने ढंग से पैच उपभोक्ताओं के माध्यम से राउंड-ट्रिप कर सकता है।
पूर्ण एकीकृत, संदर्भ और सामान्य प्रारूप तुलना के लिए बाहरी स्रोतों की आवश्यकता होती है
बाइनरी पैच, नाम बदलें हेडर, मोड परिवर्तन और एप्लिकेशन इस रूट से बाहर हैं। पाठ में कोई वस्तु पहचानकर्ता या सामान्य पूर्वज नहीं है। यह केवल इसलिए रिपॉजिटरी ऑपरेशन का प्रतिनिधित्व नहीं कर सकता क्योंकि इसके मार्कर परिचित लगते हैं।
निर्यातक सक्रिय तुलना विकल्पों को भी दर्शाता है। केस या व्हॉट्सएप सामान्यीकरण के बाद बराबर मानी जाने वाली पंक्ति में केवल मूल बायाँ पाठ होता है, इसलिए पैच-आकार का दस्तावेज़ ढीले मिलान के तहत दोनों इनपुट का बाइट-दर-बाइट पुनर्निर्माण नहीं है।
टेकअवे: डिफ एक संपीड़ित कहानी है - पढ़ने के क्रम को सारांशित करता है और नोट करता है कि कैसे ToolAcre की टेक्स्ट तुलना त्वरित समीक्षा के लिए हाइलाइट की गई पंक्तियों के समान परिवर्तन दिखाती है
पहले दो लेबल पढ़ें, फिर प्रत्येक उपसर्ग पंक्ति की क्रम से व्याख्या करें। यदि आपको प्रस्तुत पंक्ति संख्याओं की आवश्यकता है, तो ब्राउज़र दृश्य पर वापस लौटें। यदि आपको मानक-पूर्ण हंक की आवश्यकता है, तो उन्हें उस टूल से उत्पन्न करें जो उस अनुबंध का दस्तावेजीकरण करता है।
ToolAcre प्रत्येक पैच सुविधा को लागू करने का दावा किए बिना पेज के बाहर तुलना करने का एक संक्षिप्त तरीका प्रदान करता है। वह संकीर्ण नाम-पैच-आकार का आउटपुट-उम्मीदों को सटीक फ़ंक्शन के साथ संरेखित रखता है और एप्लिकेशन संगतता के झूठे वादे से बचाता है।