2010-10-27 14 views
6

मेरे पास चार शाखाओं के साथ एक Mercurial भंडार है। एक "आम" शाखा है, अन्य तीन "विशिष्ट" शाखाएं हैं जिनमें आम शाखा में लागू कुछ कॉस्मेटिक बदलाव शामिल हैं। उन कॉस्मेटिक बदलावों में से एक में कुछ फाइलों का नाम बदलने का समावेश था।Mercurial: किसी अन्य फ़ाइल में नाम बदलने वाली फ़ाइल में परिवर्तन कैसे विलय करें?

इसलिए सामान्य शाखा में "file.txt" है, और पहली विशिष्ट शाखा में "file-01.txt" है जो समान फ़ाइल है, उसी उद्देश्य के लिए उपयोग किया जाता है लेकिन इसका एक अलग नाम और थोड़ा अलग सामग्री है । इसका नाम बदलकर विशिष्ट शाखा पर फ़ाइल -01.txt कर दिया गया था, और "एचजी लॉग-एफ फ़ाइल -01.txt" सही ढंग से नाम बदलने से पहले इतिहास को दिखाता है।

जब मैं सामान्य शाखा पर file.txt में परिवर्तन करता हूं, तो मुझे उस शाखा को विशिष्ट शाखा पर फ़ाइल -01.txt में विलय करने में सक्षम होना चाहिए। लेकिन Mercurial समझ में नहीं आता है कि फाइलें एक ही हैं।

दूरस्थ बदली हुई file.txt जो स्थानीय नष्ट कर दिया

उपयोग (ग) फांसी पर लटका दिया संस्करण या छोड़ (घ) eleted: यह मुझसे कहता है?

यदि मैं "सी" चुनता हूं तो मुझे एक नई फ़ाइल.txt मिलती है जिसमें आम शाखा के संस्करण में बिल्कुल क्या होता है। अगर मैं "डी" चुनता हूं तो परिवर्तन बिल्कुल विलय नहीं होता है।

यह अधिकार प्राप्त करने के लिए मैं क्या कर सकता हूं?


संपादित करें: मैं इसे सही ढंग से एक ताजा परीक्षण भंडार में काम करने हूं, लेकिन अपने वास्तविक रेपो कर सकते हैं। यहां मुझे जो मिलता है (ध्यान दें कि पुनरुद्धार 118 मूल नाम से ठीक पहले, विशिष्ट नाम पर है, इसलिए मैं फिर से नाम बदलने के लिए नामकरण प्रक्रिया के माध्यम से जा रहा हूं):

सी: \ ...> एचजी अपडेट -सी 118

0 फ़ाइलें, 0 फ़ाइलें विलय कर दिया, अद्यतन 0 फ़ाइलों को हटा दिया, अनसुलझे

सी 0 फ़ाइलें: \ ...> एचजी डिफ़ॉल्ट

विलय file.txt
विलय anotherfile.txt विलय
0 फाइल अपडेट घ, 2 फ़ाइलें विलय कर दिया, 0 फ़ाइलें, हटाया 0 फ़ाइलों अनसुलझे
(शाखा मर्ज, मत भूलना प्रतिबद्ध करने के लिए)

तो यह नाम बदलने के बिना काम करता है। लेकिन अगर मैं नाम बदलने, यह विफल रहता है:

C: \ ...> एचजी अद्यतन -सी 118

2 फ़ाइलें अद्यतन, 0 फ़ाइलें विलय कर दिया, 0 फ़ाइलों को हटा दिया, 0 फ़ाइलों का समाधान

सी : \ ...> एचजी file.txt फ़ाइल 01.txt नाम बदलने
C: \ ...> एचजी मी "का नाम बदलकर"

नए प्रमुख बनाया प्रतिबद्ध

C: \ ...> एचजी विलय डिफ़ॉल्ट

दूरस्थ फ़ाइल बदल दी गई।txt जो स्थानीय हटाया गया
उपयोग (सी) फांसी संस्करण या छोड़ दिया (डी) हटाया?


संपादित करें 2:
फ़ाइल 01.txt: वापस 115
स्थानीय में बेजोड़ फ़ाइलों फिरना करने के लिए प्रतियों के लिए खोज

: यहाँ है कि मैं क्या hg merge --debug default से कि अंतिम चरण में मिलता है
सभी प्रतियां मिलीं (* = विलय करने के लिए,! = अलग):
फ़ाइल -01.txt -> file.txt

निर्देशिका के लिए जाँच का नाम बदलता है
को हल करने में प्रकट होता है
अधिलेखित कोई भी आंशिक झूठी
पूर्वज स्थानीय f842fdbc252b + रिमोट 05fc75e480da
anotherfile.txt 9d979018c2df: संस्करणों अलग -> मीटर
दूरस्थ बदल file.txt जो स्थानीय नष्ट कर दिया
उपयोग (ग) फांसी संस्करण या छोड़ दिया (डी) हटाया?

+0

यह अजीब बात है क्योंकि Mercurial आमतौर पर नामित फ़ाइल में परिवर्तनों को मर्ज करने के बारे में जानता है। यहां एक काम किया गया उदाहरण है जिसे आप इसे सत्यापित करने का प्रयास कर सकते हैं: http://mercurial.aragost.com/kick-start/tasks.html#merging-default-into-a-branch मुझे नहीं पता कि आपके मामले में क्या हुआ , हालांकि। –

उत्तर

0

मैंने इतिहास में एक विशेष संशोधन के लिए समस्या को ट्रैक करना समाप्त कर दिया: जब तक कि संशोधन शामिल नहीं था तब तक मैं नाम बदल सकता था। अभी भी यह सुनिश्चित नहीं है कि उस संशोधन के साथ क्या गलत हुआ, लेकिन मैंने परिवर्तनों को दोहराया और अब यह काम कर रहा है।

0

समस्या यह है कि आपने शाखा में नाम कैसे संभाला है। इसके दिखने से आप (या आपके जीयूआई) ने पुराने नाम, file.txt पर 'हटाएं' किया था, और उसके बाद फ़ाइल -01.txt नामक उस फ़ाइल की प्रतिलिपि बनाई थी।

जब आप ऐसा करते हैं, तो Mercurial को पता नहीं है कि वे जुड़े हुए हैं।

hg rename file.txt file-01.txt 

तो बजाय संदेश आप परिवर्तनों को देख रहे हैं file.txt फाइल-01.txt पर लागू किया जाएगा से: अगर, हालांकि, आप के लिए किया था, शाखा में, कमांड का इस्तेमाल किया। हालांकि, आपकी मदद के बिना Mercurial पता नहीं कर सकते वे जुड़े हुए हैं।

+1

"हाथ" -> "संभाला"? –

+1

मुझे नहीं पता कि क्या गलत है, लेकिन वह कहता है कि 'hg log -f file-01.txt' इतिहास के पीछे * नाम * के माध्यम से सही ढंग से अनुसरण करता है ... जो मुझे विश्वास दिलाता है कि उसने इसे सही ढंग से नामित किया है। –

+0

हाँ, मुझे लगता है कि इसका नाम बदलकर फाइल ब्राउजर जीयूआई में किया गया था और उसके बाद आईडीई से ऐड/हटा दिया गया। अगर मैं गलत हूं तो यह निश्चित रूप से कुछ गहरा है, लेकिन मेरा अनुमान है कि 'एचजी नाम' का उपयोग नहीं किया गया था। माना जाता है कि यह एक झटका है। –

संबंधित मुद्दे