2011-03-03 9 views
38

Am पता है कि डिफ़ॉल्ट नाम बदलने की सीमा 100 है और config "diff.renamelimit config"GIT चेतावनी: बहुत से लंघन अयथार्थ नाम बदलने का पता लगाने

क्या चिंता हो रही है का उपयोग करते हुए इस मूल्य में वृद्धि कर सकते हैं, अगर यह config है फ़ाइलें सेटअप नहीं, क्या कोई गलत विलय होगा, कोई गुम कोड होगा? मैं विलय करने की कोशिश कर रहा हूं (गिट मर्ज) 2 शाखाएं जिनमें भारी परिवर्तन हैं।

क्या कोई इस कॉन्फ़िगरेशन सेटिंग के बारे में अधिक प्रकाश डाल सकता है?

उत्तर

28

आपकी सामग्री सुरक्षित है।

मैं यह समझ के रूप में, git वास्तव में एक प्रथम श्रेणी rename आपरेशन के किसी भी अवधारणा नहीं है (केवल bzr बड़ा 3 DVCSs की, करता है): mv अंतर्निहित मशीनरी, जो मूल रूप से है की चोटी पर चीनी है एक add और rm। चूंकि git ऐसे परिचालनों के दौरान परिवर्तित होने वाली सामग्री को ट्रैक कर सकता है, हालांकि, यह अनुमान लगाने के लिए हेरिस्टिक का उपयोग कर सकता है जब add और rm वास्तव में mv हैं। चूंकि यह git वास्तव में दर्ज किए गए प्रदर्शन से अधिक काम करता है-git-diff के लिए दस्तावेज़ों ने समझाया कि "... ओ (एन^2) प्रसंस्करण समय की आवश्यकता है जहां एन संभावित नाम/प्रति लक्ष्य की संख्या है" - git जीता ' जब बहुत सारी फाइलें शामिल हों तो इसे आजमाएं। आपके द्वारा उल्लिखित सेटिंग केवल उस सीमा को नियंत्रित करती है।

+14

"आपकी सामग्री सुरक्षित है" - हालांकि अगर पहचान एक फ़ाइल को याद करती है जिसका नाम बदलकर विलय के एक तरफ रखा गया था और दूसरे पर बदल दिया गया था, तो आप उन विवादों को विलय कर पाएंगे जिन्हें आप नाम नहीं मिला हो सकता है। विलय * गलत * नहीं होगा, लेकिन इसे पूरा करने के लिए अधिक उपयोगकर्ता प्रयास की आवश्यकता हो सकती है। – Cascabel

+0

धन्यवाद हैंक और जेफ्रोमी। इस "diff.renamelimit config" को स्थापित करना वास्तव में किसी भी परिस्थिति में उपयोगी होगा? –

+0

यदि कोई सेटिंग उपयोगी है तो कोई भी सोच रहा है: हाँ, यह शाखाओं को मर्ज करने में आपकी सहायता कर सकता है जब एक शाखा में आपने सैकड़ों फाइलें स्थानांतरित की हैं और दूसरे में आपने उन फ़ाइलों में बहुत सारे बदलाव किए हैं। मेरे पास ऐसी स्थिति थी जब मेरे पास एक शाखा पर भारी कोड रिफैक्टर था और कुछ चल रहा था। – korda