डेवलपर टूल · पाठ तुलना
टू-वे डिफ बनाम थ्री-वे मर्ज: तुलना करना मर्जिंग के समान क्यों नहीं है
· पेजभूमि
पाठ-अंतर विलय-संघर्ष संस्करण-नियंत्रण
दो संस्करणों की तुलना करने और एक समान पूर्वज साझा करने वाले दो संस्करणों को विलय करने के बीच अंतर बताता है, और संघर्ष चिह्नक क्यों मौजूद हैं।
दो लोगों ने एक ही फ़ाइल संपादित की: अब क्या? - जब दोनों पक्ष बदल गए तो दो-संस्करण की तुलना की सीमा के साथ खुलता है
जब दो लोग एक फ़ाइल को संपादित करते हैं, तो उनकी अंतिम स्थिति की तुलना करने से अंतर तो पता चलता है, लेकिन वंश नहीं। दो-तरफ़ा अंतर में यह बताने के लिए आवश्यक सामान्य आधार का अभाव होता है कि किस पक्ष ने किसी विशेष मूल रेखा को बदला है। यह जांच का समर्थन कर सकता है, फिर भी यह विलय का निर्णय नहीं ले सकता।
ToolAcre बिल्कुल मूल और परिवर्तित नामक दो स्ट्रिंग स्वीकार करता है। स्वैप परिप्रेक्ष्य को उलट देता है; यह इतिहास नहीं जोड़ता. किसी भी वर्कफ़्लो को आधार की आवश्यकता है, हमारा और उनका उन राज्यों को अलग-अलग तुलनाओं के माध्यम से प्रदान करना होगा या वास्तविक तीन-तरफ़ा मर्ज इंजन का उपयोग करना होगा।
दो-तरफा अंतर एक प्रश्न का उत्तर देता है - यह दर्शाता है कि तुलना आपको बताती है कि क्या अंतर है, न कि किस पक्ष को जीतना चाहिए
दो-तरफ़ा तुलना उत्तर देती है कि चयनित केस और रिक्त स्थान विकल्पों के अंतर्गत क्रमित पंक्तियाँ भिन्न होती हैं। पंक्तियाँ बराबर, हटाई या जोड़ी जाती हैं। उस परिणाम में कुछ भी यह नहीं कहता कि एक पक्ष नया, आधिकारिक या सही है, और कोई भी ऑपरेशन विजेता का चयन नहीं करता है।
यह सीमा तब मायने रखती है जब दोनों पक्षों ने एक ही क्षेत्र को संपादित किया हो। केवल बाईं ओर मौजूद एक पंक्ति अप्रचलित विलोपन के बजाय एक मूल्यवान नया परिवर्तन हो सकती है। आधार साक्ष्य के बिना, दिशा लेबल तुलनात्मक परिप्रेक्ष्य का वर्णन करते हैं, विकास कालक्रम का नहीं।
सामान्य पूर्वज सब कुछ बदलता है - बताता है कि कैसे एक आधार संस्करण एक मर्ज टूल को एक पक्ष से दूसरे पक्ष के परिवर्तन को बताता है
एक सामान्य पूर्वज मर्ज सिस्टम को आधार-से-बाएँ और आधार-से-दाएँ की तुलना करने की अनुमति देता है। यदि केवल एक वंशज किसी क्षेत्र को बदलता है, तो वह परिवर्तन स्पष्ट रूप से संयोजित हो सकता है; यदि दोनों असंगत संपादन करते हैं, तो सिस्टम मानव समाधान के लिए संघर्ष उत्पन्न कर सकता है।
ToolAcre में कोई तीसरा इनपुट और कोई मर्ज एल्गोरिदम नहीं है। आप आधार और एक शाखा को चिपका सकते हैं, पंक्तियों को रिकॉर्ड कर सकते हैं, फिर दूसरी शाखा के लिए दोहरा सकते हैं। वह मैन्युअल विश्लेषण समझने में मदद करता है लेकिन संस्करण नियंत्रण के सभी प्लेसमेंट और विरोध नियमों को दोबारा नहीं बनाता है।
संघर्ष मार्करों को डिकोड किया गया - <<<<<<<, ======= और >>>>>>> अनुभागों और उनके बीच क्या होता है, इसकी व्याख्या करता है
कोण-ब्रैकेट ब्लॉक जैसे संघर्ष चिह्नक यहां चिपकाए जाने के बाद शाब्दिक पाठ बन जाते हैं। टेक्स्ट अंतर एक प्रस्तावित रिज़ॉल्यूशन के साथ एक चिह्नित फ़ाइल की तुलना कर सकता है, लेकिन यह हमारे, आधार या उनके जैसे अनुभागों को पार्स नहीं करता है। यह मार्करों को नहीं हटाएगा या सामग्री का चयन नहीं करेगा।
आधिकारिक भंडार में विवादों का समाधान करें, जहां फ़ाइल नाम, वंशावली और परीक्षण उपलब्ध रहते हैं। जब सामग्री चिपकाने के लिए उपयुक्त हो तो केवल छोटी शब्दों की जांच के लिए ब्राउज़र टूल का उपयोग करें। एक स्पष्ट रूप से साफ़ परिणाम इस बात का प्रमाण नहीं है कि मर्ज किया गया प्रोग्राम सही ढंग से व्यवहार करता है।
कार्यान्वित उदाहरण: एक क्लीन हंक और एक संघर्ष के साथ विलय - एक आधार, दो संपादन और परिणामी आउटपुट के माध्यम से चलता है
आधार रेखाओं `color=blue` और `limit=10` से प्रारंभ करें। एक शाखा रंग बदलती है; एक और परिवर्तन सीमा. आधार-से-शाखा तुलना से स्वतंत्र पंक्तियों का पता चलता है, और एक विलय प्रशंसनीय रूप से दोनों को बनाए रख सकता है। यदि दोनों एक ही सीमा को अलग-अलग तरीके से बदलते हैं, तो पाठ्य संघर्ष के लिए नीतिगत निर्णय की आवश्यकता होती है।
दो शाखाओं के बीच दो-तरफा तुलना दोनों पंक्तियों को अलग-अलग दिखाती है लेकिन साझा शुरुआती मूल्य का अनुमान नहीं लगा सकती है। वह गायब तथ्य ही है जिसकी वजह से तुलना करना विलय नहीं है। तर्क में आधार जोड़ें, फिर चुनी गई संयुक्त स्थिति का उसकी वास्तविक प्रणाली में परीक्षण करें।
जहां दो-तरफा तुलना अभी भी मदद करती है - आधार के विरुद्ध प्रत्येक पक्ष की तुलना करने, या अपेक्षाओं के विरुद्ध मर्ज किए गए परिणाम की जांच करने का वर्णन करता है
संघर्ष समाधान के बाद दोतरफा अंतर उपयोगी रहता है। बचे हुए इच्छित योगदान की पुष्टि करने के लिए, या अपेक्षित हस्तलिखित स्थिति की पुष्टि करने के लिए प्रत्येक शाखा के विरुद्ध मर्ज किए गए अंश की तुलना करें। जब रिक्त स्थान या मामला भाषा को प्रभावित कर सकता है तो सामान्यीकरण को बंद रखें।
डाउनलोड की गई पैच-आकार की स्ट्रीम प्रत्येक चेक को रिकॉर्ड कर सकती है, लेकिन यह मर्ज को लागू या मान्य नहीं कर सकती है। मूल पंक्ति संख्याएँ प्रत्येक चिपकाई गई स्थिति के लिए स्थानीय होती हैं और पड़ोसी संपादनों के बाद रिपॉजिटरी स्थिति से भिन्न हो सकती हैं।
इसमें क्या शामिल नहीं है - ToolAcre की पाठ तुलना दो पाठों की तुलना करती है; यह विलय नहीं करता है, और यह पोस्ट रीबेसिंग रणनीतियों को कवर नहीं करता है
ToolAcre मर्ज, रिबेस, विरोध एट्रिब्यूशन या प्रतिबद्ध इतिहास विश्लेषण नहीं करता है। इसमें कोई मूव्ड-ब्लॉक लेबल नहीं है और कोई अर्थ संबंधी समझ नहीं है। ये कहीं और छिपे हुए गायब बटनों के बजाय दो-इनपुट लाइन तुलनित्र के स्पष्ट परिणाम हैं।
लेख में शाखाकरण रणनीति भी नहीं बताई गई है। टीमों को अपने रिपॉजिटरी नियंत्रण, कोड स्वामित्व और परीक्षण गेट का पालन करना चाहिए। ब्राउज़र तुलना एक सहायक निरीक्षण सतह है, वैकल्पिक स्रोत-नियंत्रण प्रणाली नहीं।
टेकअवे: समझने में अंतर, निर्णय लेने के लिए विलय - अंतर को सारांशित करता है और ब्राउज़र तुलना हाथ से किसी विरोध को हल करने में कैसे फिट बैठती है
पाठ को समझने में कठिनाई; संयुक्त स्थिति तय करने के लिए विलय करें। पहले को ToolAcre के साथ जोड़ीवार दोहराया जा सकता है, जबकि दूसरे को वंशावली, नीति और सत्यापन की आवश्यकता होती है। उन क्रियाओं को अलग रखने से स्पष्ट पंक्ति प्रदर्शन को सुरक्षित एकीकरण समझने से रोका जा सकता है।
किसी विरोध को हल करने के बाद, वास्तविक प्रोजेक्ट में सिंटैक्स जाँच, परीक्षण और डोमेन समीक्षा चलाएँ। कई विलयों के लिए पाठ्य सहमति आवश्यक है लेकिन व्यवहार के लिए कभी भी पर्याप्त नहीं है। ब्राउज़र की भूमिका एक बार समाप्त हो जाती है जब वह प्रासंगिक लाइन अंतर को दृश्यमान बना देता है।