2010-09-04 8 views
43

पर कॉपी करना मुझे आश्चर्य है कि क्या मैं संपूर्ण अन्य भंडार आयात करने के बिना एक फ़ाइल और उसके इतिहास को एक संग्रह से दूसरे में कॉपी कर सकता हूं।Mercurial: एक फ़ाइल और उसके इतिहास को अन्य रिपॉजिटरी

+2

वैकल्पिक रूप से, आप फ़ाइल की प्रतिलिपि को रिपोजिटरी और संशोधन आईडी के सूचक के साथ कर सकते हैं। – jilles

उत्तर

53

आप ConvertExtension का उपयोग पहली रिपॉजिटरी से एक नई अस्थायी भंडार में निर्यात करने के लिए कर सकते हैं, फिर लक्ष्य भंडार में नया भंडार आयात करने के लिए hg pull -f का उपयोग करें।

एकल लाइन के साथ ConvertExtension के लिए एक filemap बनाएँ:

include path/to/file 

तब का उपयोग करें:

hg convert path/to/original path/to/temporary --filemap filemap 

अस्थायी भंडार बनाने के लिए। इसके बाद, लक्ष्य भंडार में, करें:

hg pull -f path/to/temporary 

उस फ़ाइल को अपने इतिहास के साथ खींचने के लिए। यह एक नया सिर बनाएगा, इसलिए अपने लक्ष्य भंडार में सिर के साथ विलय करने के लिए hg merge का उपयोग करें।

+0

मुझे यह नहीं मिला: मैंने बहुत सारी कोशिश की है, और लगभग हर बार केवल दो काम करता है (लेकिन सही फाइलों के साथ) एक भंडार Iget। यह सिर्फ एक बार काम करता था और मेरे पास अलग-अलग विचार नहीं है कि मैंने क्या किया: | –

+9

ffs मुझे मिल गया: यह फ़ाइल नामों को संभाल नहीं करता है! आपको फाइलों के सभी पिछले नामों को स्पष्ट रूप से "शामिल" करना होगा (और मुझे नहीं पता कि उन्हें याद होगा कि वे नई फाइलों के बजाय नाम थे) –

7

बस निएल सी के उत्तर में जोड़ने के लिए, आप उन फ़ाइलों का नाम बदल सकते हैं जिन्हें आप सही स्थान पर रखने के लिए आयात कर रहे हैं।

आपको पहले फ़ाइल का नाम बदलना होगा, फिर इसे शामिल करना होगा। आपका फ़ाइलमैप इस तरह दिखेगा:

rename "original/path" "wished/path" 
include "original/path" 
संबंधित मुद्दे