दिलचस्प पोस्ट
GitHub प्रोजेक्ट पृष्ठों के लिए कस्टम डोमेन जावास्क्रिप्ट में एक आइफ्रेम के शरीर की सामग्री कैसे प्राप्त करें? कैसे jquery का उपयोग कर मूल विंडो वस्तु का उपयोग करने के लिए? कमांड लाइन विकल्प का उपयोग करते हुए हेडर फाइल शामिल करें? मैं एक MySQL डाटाबेस (स्कीमा नाम बदलकर) का नाम कैसे बदलूं? क्या मैं जावा / ग्रोविए में अपने विंडोज डेस्कटॉप वॉलपेपर को बदल सकता हूँ? SQL सर्वर 2008 में पृष्ठ पर अंक लगाना कैसे करें "डिबगर के लिए प्रतीक्षारत" संदेश को कैसे हल करें? आईपैड सफारी – कीबोर्ड को गायब बनाओ क्या एक अच्छा यूनिट टेस्ट बनाता है? jqGrid: फ़िल्टरटूलबार चयन बक्से को भरने के लिए प्रसंस्करण से पहले का उपयोग करना मैं .NET के माध्यम से एआरपी-प्रोटोकॉल की जानकारी कैसे प्राप्त करूं? स्ट्रिंग्स को स्टोर करने के लिए डेटा टाइप "टेक्स्ट" का उपयोग करने की कोई डाउनसाइड्स? SQL त्रुटि: कीवर्ड 'उपयोगकर्ता' के निकट गलत वाक्यविन्यास त्रुटि: सेटअप स्क्रिप्ट त्रुटि से बाहर निकल गई: कमांड 'x86_64-linux-gnu-gcc' से बाहर निकलने की स्थिति 1 में विफल

जीआईटी के नाम बदलने के लिए इसी फाइल की पहचान कैसे की जाती है?

विकिपीडिया स्वत: नाम बदलने का पता लगाता है:

संक्षेप में, संशोधन एन में एक फ़ाइल दी गई है, संशोधन में समान नाम की एक फ़ाइल एन -1 अपने डिफ़ॉल्ट पूर्वज है हालांकि, जब पुनरीक्षण एन-1 में कोई समान-नामित फ़ाइल नहीं है, तो जीआईटी एक फाइल के लिए खोज करती है जो कि केवल संशोधन एन -1 में ही मौजूद थी और यह नई फ़ाइल के समान है।

पहचान का नाम बदलें, जाहिरा तौर पर समान फ़ाइल पहचान के लिए नीचे फोड़े। क्या यह एल्गोरिदम कहीं भी प्रलेखित है? यह जानना अच्छा होगा कि किस प्रकार के परिवर्तनों को स्वचालित रूप से पता चल जाएगा

वेब के समाधान से एकत्रित समाधान "जीआईटी के नाम बदलने के लिए इसी फाइल की पहचान कैसे की जाती है?"

गीट फाइल सामग्री को नज़र रखता है, फाइलनामों को नहीं। इसलिए अपनी सामग्री को बदलने के बिना एक फ़ाइल का नाम बदलने के लिए git का पता लगाने के लिए आसान है। (गिट ट्रैक नहीं करता है, लेकिन पता चला है , git mv या git rm और git add का प्रयोग प्रभावी रूप से एक ही है।)

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

पुनर्नामित फ़ाइल में छोटे परिवर्तनों का पता लगाने के लिए, गिट कुछ एल्गोरिदम और एक थ्रेसहोल्ड सीमा का उपयोग करता है यह देखने के लिए कि क्या यह एक नाम बदला है। उदाहरण के लिए, git diff लिए -M ध्वज पर एक नज़र डालें merge.renameLimit रूप में भी कॉन्फ़िगरेशन मान हैं जैसे- merge.renameLimit (मर्ज के दौरान नाम बदलने का प्रदर्शन करते समय विचार करने वाली फ़ाइलों की संख्या)

यह समझने के लिए कि गिट इसी तरह की फाइलों को कैसे नियंत्रित करता है (यानी, कौन से फ़ाइल परिवर्तनों को नाम दिया जाता है), उपर्युक्त जैसा कि कॉन्फ़िगरेशन विकल्प और झंडे उपलब्ध हैं, एक्सप्लोर करें। आपको इस बात पर विचार नहीं किया जाना चाहिए कि कैसे। यह समझने के लिए कि कैसे git वास्तव में इन कार्यों को पूरा करता है, पाठ में अंतर खोजने के लिए एल्गोरिदम को देखें, और git सोर्स कोड पढ़ें।

एल्गोरिदम केवल diff, मर्ज और लॉग प्रयोजनों के लिए लागू होते हैं – वे git को किस प्रकार संग्रहीत करते हैं, यह प्रभावित नहीं करते हैं फ़ाइल सामग्री में कोई भी छोटा परिवर्तन मतलब है कि इसके लिए एक नया ऑब्जेक्ट जोड़ा गया है। उस स्तर पर कोई डेल्टा या अंतर नहीं होता है बेशक, बाद में, ऑब्जेक्ट पैक किया जा सकता है, जहां डेल्टा को पैकफ़ाइल में संग्रहीत किया जाता है, लेकिन यह नाम बदलने के लिए संबंधित नहीं है।

कई एल्गोरिदम हैं जो ग्रंथों के बीच समानता का पता लगाते हैं, और संस्करण नियंत्रण सिस्टम प्रायः दो संस्करणों के बीच अंतर केवल स्टोर करने के लिए इसका उपयोग करते हैं WinMerge जैसे उपकरण काफी चालाक हैं, अंतरों का पता लगाने के लिए, यहां तक ​​कि लाइनों के भीतर भी, इसलिए मुझे कोई कारण नहीं दिखता क्योंकि ये नाम बदलने के लिए इन एल्गोरिदम का उपयोग नहीं किया जाएगा।

समान ग्रंथों का पता लगाने के लिए एल्गोरिदम के बारे में यहां चर्चा है। इनमें से कुछ एल्गोरिदम को प्राकृतिक भाषाओं के लिए अनुकूलित किया जा सकता है, जबकि अन्य स्रोत कोड के लिए बेहतर काम कर सकते हैं, लेकिन संक्षेप में ये बहुत समान हैं।