2010-10-19 12 views

उत्तर

13

मूल रूप से, आप नहीं कर सकते। Mercurial का एक कठिन और तेज़ नियम है कि एक परिवर्तन केवल एक भंडार में मौजूद हो सकता है यदि उसके पूर्वजों में से प्रत्येक परिवर्तन उस भंडार में भी मौजूद है।

हालांकि, आप एक नया भंडार बना सकते हैं जिसका परिवर्तन किसी अन्य भंडार में बाद के परिवर्तनों के उप-समूह से मेल खाता है। हालांकि, वे एक ही बदलाव नहीं होंगे, क्योंकि उनके पास अलग हैश नोडिड्स होंगे, और मूल रेपो से कोई भी क्लोन नए ("असंबंधित भंडार") के साथ काम नहीं करेगा।

आप एक नया रेपो केवल एक और रेपो में नए changesets में से कुछ इस तरह की एक प्रक्रिया का उपयोग कर दर्शाती बनाने के लिए कोशिश कर सकते:

hg -R /path/to/bigrepo export 10:tip > latestchanges.patch 
hg init newsmallrepo 
hg -R newsmallrepo import < latestchanges.patch 

कि नक़ल की केवल changesets अलग हैश के साथ नए changesets में 10 और बाद के गिने नए भंडार में। यह विलय के साथ बहुत अच्छी तरह से काम नहीं करेगा।

+0

यह समाधान है। मैंने इस आदेश की तलाश की है और नहीं मिला है। धन्यवाद Ry4an! –

11

convert एक्सटेंशन (Mercurial के साथ शामिल) देखें।

hg convert <src> <dest> --config convert.hg.startrev=<rev> 

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

[extensions] 
convert = 

भागो hg help convert:

mercurial.ini के लिए निम्न जोड़कर एक्सटेंशन सक्षम करें।

+0

** विंडोज ** के तहत, ***/C: \ Users \ \ mercurial.ini' * में सबकुछ जोड़ना/बनाना * काम नहीं किया, लेकिन ** मौजूदा ** 'C: \ Users \ \ समायोजित कर रहा है। hgrc' ** फ़ाइल ने चाल की है :-) (एचजी 2.7.1) –

+0

मैं विंडोज और Mercurial.ini का उपयोग करता हूं। दोनों काम करेंगे। [एचजीआरसी दस्तावेज़] देखें (http://www.selenic.com/mercurial/hgrc.5.html)। –

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