मर्क्यूरियल में दो परियोजनाओं को कैसे मिलाएं?


84

मेरे पास दो अलग-अलग भाड़े के भंडार हैं। इस बिंदु पर यह समझ में आता है कि वे "एक हो जाते हैं" क्योंकि मैं एक साथ दो परियोजनाओं पर काम करना चाहता हूं।

मैं वास्तव में दो परियोजनाओं को नए रिपॉजिटरी में एक उपनिर्देशिका होना चाहूंगा।

  1. मैं दो परियोजनाओं का विलय कैसे करूं?
  2. क्या यह एक अच्छा विचार है, या मुझे उन्हें अलग रखना चाहिए?

ऐसा लगता है कि मुझे एक रिपॉजिटरी से दूसरे में पुश करने में सक्षम होना चाहिए ... शायद यह वास्तव में सीधे आगे है?

जवाबों:


69

मैं अपने दो रिपॉजिटरी को इस तरह से संयोजित करने में सक्षम था:

  1. hg clone first_repositoryरिपॉजिटरी में से किसी एक को क्लोन करने के लिए उपयोग करें ।
  2. hg pull -f other_repositoryअन्य रिपॉजिटरी से कोड को खींचने के लिए उपयोग करें ।

-f(बल) पुल पर झंडा कुंजी है - यह तथ्य यह है कि दो खजाने एक ही स्रोत से नहीं कर रहे हैं की अनदेखी करने के कहते हैं।

इस सुविधा के लिए यहां डॉक्स दिए गए हैं ।


1
क्या यह दूसरी रेपो से कमिट की हैश कीज़ को भी संरक्षित करता है? (मुझे लगता है कि नहीं होगा, लेकिन यह तब तक ठीक हो सकता है जब तक आप एक मर्ज नहीं करते।)
मैके

6
यह काम करता है, लेकिन आपको hg mergeअंततः सब कुछ काम करने के लिए चलाने की आवश्यकता होगी
Factor Mystic

7
@ मारकस लिंडब्लोम: एक बदलाव को खींचना, कभी भी अपने हैश को बदलना नहीं होगा । यदि आप hg glogऐसा करने के बाद देखते हैं तो आप देखेंगे कि आपके पास परिवर्तनों की दो असंबंधित लाइनें हैं। प्रत्येक पंक्ति में पहले बदलाव का कोई माता-पिता नहीं है, लेकिन यह मर्क्यूरियल के लिए कोई समस्या नहीं है। एक बार जब आप खींच लेंगे तो आप प्रत्येक पंक्ति के लिए एक नया बदलाव करना चाहेंगे जहाँ आप hg mvसब कुछ उपयुक्त सबफ़ोल्डर में कर दें, तो आप लाइनों को मर्ज कर देंगे और आप सभी सेट हो जाएंगे ।
स्टीव लॉश

1
क्या होगा अगर दो रिपॉजिटरी में दोनों के लिए कोड कॉमन हो। क्या यह मर्ज अपने आप हो जाएगा? और मर्ज के लिए, हम ust $ hg मर्ज कह सकते हैं?
कमल

2
संदर्भ उद्देश्यों के लिए, यहाँ इस प्रक्रिया के लिए डॉक्स हैं mercurial.selenic.com/wiki/MergingUnrelatedRepositories
Gent

7

1.3 (2009-07-01) के बाद से hg के पास सब्रेपो होने लगा । शुरुआती संस्करण अपूर्ण और अस्थिर थे, लेकिन अब यह बहुत प्रयोग करने योग्य है।


2
मुझे काम करने के लिए दर्द होने के लिए सबप्रॉप्स मिला है। वे काम करते हैं लेकिन आपको उन्हें व्यवहार करने के लिए कुछ हुप्स के माध्यम से कूदना पड़ता है और यदि आप सावधान नहीं हैं तो बहुत सारे सिरदर्द का स्रोत हो सकते हैं।
पीट डनकसन

4
ध्यान देने योग्य बात यह हो सकती है कि उप-समूह आधिकारिक तौर पर अंतिम उपाय की एक विशेषता हैं: mercurial.selenic.com/wiki/Subrepository (
2013.11.12 तक

3

यदि आप परियोजनाओं में समान कोड का उपयोग नहीं कर रहे हैं, तो उन्हें अलग रखें। आप उन परियोजनाओं में से प्रत्येक के अपने व्यक्तिगत भंडार को केवल एक निर्देशिका के अलावा सेट कर सकते हैं। जब आपके पास नहीं है, तो सभी शाखाओं, मर्ज और टिप्पणियों को क्यों मिलाएं।

अपने संपादन के बारे में: एक रिपॉजिटरी से दूसरे में पुश करना। आप हमेशा transplantकमांड का उपयोग कर सकते हैं । हालाँकि, यह सब वास्तव में दोनों को मिलाने की आपकी इच्छा को आगे बढ़ा रहा है , इसलिए आप मेरे सुझावों का उपयोग करके असहज महसूस कर सकते हैं। तब आप वन विस्तार, या कुछ और का उपयोग कर सकते हैं।

hg transplant -s REPOSITORY lower_rev:high_rev
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.