2012-01-11 12 views
9

हम diff (log, show दौरान नाम बदलने का पता लगाने के लिए कुछ heuristics विन्यास विकल्प हैं) और merge:सीमा बदलें शामिल का नाम बदलने (-M [n] --find-renames [= n] diff पर की तरह) के साथ विलय

diff.renameLimit फ़ाइलों की संख्या पर विचार करने के लिए जब प्रतिलिपि प्रदर्शन/नाम बदलने का पता लगाने; गिट diff विकल्प के बराबर -एल।

diff.renames renames पता लगाने के लिए Git कहता है। यदि किसी भी बूलियन मान पर सेट किया गया है, तो यह मूल नामकरण पहचान सक्षम करेगा। यदि "प्रतियां" या "प्रतिलिपि" पर सेट किया गया है, तो यह प्रतियों का पता लगाएगा।

merge.renameLimit विलय के दौरान नाम बदलने का विचार करते समय विचार करने वाली फ़ाइलों की संख्या; यदि निर्दिष्ट नहीं है, तो diff.renameLimit के मान पर डिफ़ॉल्ट।

-M [<n>] (या --find-renames [:

इसके अलावा हम जब विभिन्न सामग्री के साथ फ़ाइलों diff के लिए एक नाम बदलने (log, show) माना जाता है को नियंत्रित करने के एक विकल्प है = < एन >])

नामों का पता लगाएं। यदि एन निर्दिष्ट किया गया है, तो यह समानता सूचकांक (यानी फ़ाइल के आकार की तुलना में अतिरिक्त/हटाए जाने की राशि) पर एक सीमा है। उदाहरण के लिए, -एम 0 9% का मतलब है कि गिट को एक डिलीट/एड जोड़ी पर पुनर्नामित करना चाहिए यदि फ़ाइल का 90% से अधिक नहीं बदला गया है।

प्रश्न: विलय के लिए समानता सूचकांक पर दहलीज को कैसे नियंत्रित करें? ऐसा लगता है कि diff और कुछ अन्य के लिए कमांड लाइन विकल्प के रूप में उपलब्ध नहीं है लेकिन merge नहीं है। और diff के लिए भी कोई कॉन्फ़िगरेशन कुंजी नहीं है। क्या यह किसी कारण से merge के लिए लागू नहीं है?

उत्तर

4

आप पुनरावर्ती मर्ज रणनीति (डिफ़ॉल्ट) आप का नाम बदलें-सीमा विकल्प का उपयोग कर सकते हैं के साथ विलय कर रहे हैं:

git merge -X rename-threshold=80 branch 
संबंधित मुद्दे