2011-04-10 16 views
9

अस्थिर करने के लिए यहाँ बदल जाती है पर Git submodules से निपटने के लिए चला जाता है:कैसे एक रेपो कि

$ cat .gitmodules 
[submodule "utils/external/firepython"] 
    path = utils/external/firepython 
    url = git://github.com/darwin/firepython.git 
[submodule "utils/external/textile"] 
    path = utils/external/textile 
    url = git://github.com/jsamsa/python-textile.git 

हालांकि यह अभी भी था एक Git रेपो, मैं git submodule init, जिसके बाद कुछ जादू होता है चलाने के लिए आवश्यक। चूंकि मैंने अब रेपो को Mercurial में बदल दिया है (hgext.git एक्सटेंशन का उपयोग करके), मुझे नहीं पता कि क्या करना है। क्या कोई समकक्ष प्रक्रिया है (मुझे अपने Mercurial repo में उन 2 गिट मॉड्यूल की आवश्यकता है)?

उत्तर

12

Mercurial विभिन्न प्रकार के subrepositories का समर्थन करता है: Mercurial, Subversion, और गिट। तो तुम

utils/external/firepython = [git]git://github.com/darwin/firepython.git 
utils/external/textile = [git]git://github.com/jsamsa/python-textile.git 

के साथ एक .hgsub फ़ाइल बना सकते हैं और कहा कि जब मर्क्युरियल भंडार क्लोन है अपना Git संग्रह का क्लोन बनाने के लिए मर्क्युरियल को सूचित करेंगे।

$ git clone git://github.com/darwin/firepython.git utils/external/firepython 
$ git clone git://github.com/jsamsa/python-textile.git utils/external/textile 
$ hg add .hgsub 
$ hg commit -m 'Added Git subrepositories' 

तो आप देखेंगे कि मर्क्युरियल अपने संग्रह का .hgsubstate फ़ाइल जहां यह Git के बारे में जानकारी संग्रहीत करता है जोड़ा गया है: आप Git क्लोन अपने आप को पहली बार बनाने के लिए या अपने डिस्क पर कहीं और से उन्हें कॉपी की जरूरत है, subrepositories। इस फ़ाइल की आवश्यकता है ताकि जब आप एक नया Mercurial क्लोन बनाते हैं तो Mercurial आपके subrepositories से चेकआउट के लिए कौन सा संशोधन जानता है।

मेरा एक सहयोगी ने subrepository guide लिखा है जो आपको उपयोगी लगेगा।