2009-07-02 17 views
21

मेरे पास एक बहुत पुरानी परियोजना है जिसमें पुस्तकालय के रूप में इसे जोड़ने के बजाय सीधे किसी अन्य प्रोजेक्ट से स्रोत शामिल है। बुरे दिनों में, जब मैं सब कुछ सीवीएस में रख रहा था, तो मेरे पास एक विक्रेता शाखा पर बाहरी कोड था और आवधिक आयात किया था। अब जब मेरी परियोजना गिट में है तो बाहरी परियोजना को एक सबमिशन के रूप में शामिल करने के लिए और अधिक समझदारी होगी। लेकिन, एक समस्या है: बाहरी परियोजना Mercurial में स्थानांतरित हो गया है। मुझे गिट-एचजी और एचजी-गिट परियोजनाएं मिली हैं, लेकिन मुझे यकीन नहीं है कि कोई भी ठीक से पनडुब्बियों को संभालता है या नहीं।गिट सबमिशन?

क्या कोई गिट सबमिशन बनाने का कोई तरीका है जो एक गिट रेपो के बजाय एचजी रेपो को इंगित करता है?

उत्तर

12

hg-git के बाद से उल्लेख है कि submodules अभी तक समर्थित नहीं कर रहे हैं, यह है कि केवल एक मैनुअल विकल्प छोड़ देता है:

  • सेटअप एक Git भंडार कहीं है कि आप करने के लिए धक्का उपयोग कर सकते है,
  • दूरदराज के एक Git के रूप में जोड़ें और फिर
  • अपनी परियोजना के भीतर से hg gpush चलाएं।

उदाहरण के लिए:

$ cd hg-git # (an Hg repository) 
$ hg gremote add origin [email protected]/schacon/hg-git.git 
$ hg gpush 

कि Git रेपो अपने submodule का प्रतिनिधित्व करेगा, लेकिन अगर आप को संशोधित करने और है कि submodule धक्का, आप अभी भी वास्तविक एचजी रेपो करने के लिए कि Git रेपो से खींचने के लिए होगा।

अन्य महान git-hg कमांड इस "rosetta stone" में सूचीबद्ध हैं।

+1

उदाहरण में एक टाइपो है। ऊपर दिए गए विवरण में उल्लिखित "$ hg push" होना चाहिए "$ hg gpush"। इसके अलावा, @ वॉनसी का जवाब मेरे लिए बहुत उपयोगी था। धन्यवाद! :-) –

+1

यह उदाहरण इसके नामकरण से भ्रमित है। मुख्य भंडार निर्देशिका क्या है और सबमिशन/सबरेपो डीआईआर क्या है? – einpoklum

+0

@ 7pinllum जो मैं इस 7 साल के प्रश्न से पढ़ सकता हूं, सबमिशन बाहरी रेपो है जो मर्कुरियल में माइग्रेट हो गया है। लक्ष्य आपके स्थानीय मर्क्यूरियल क्लोन से दूरस्थ गिट रेपो तक धक्का देना है, जिसे किसी भी गिट पेरेंट रेपो द्वारा सबमिशन के रूप में संदर्भित किया जा सकता है। – VonC

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