सबमॉड्यूल

खास जानकारी

एक Git submodule आपको अपने कोड में अन्य Git प्रोजेक्ट इंटीग्रेट करने की अनुमति देता है, बिना उनके सभी कोड को कॉपी-पेस्ट करने की ज़रूरत के।

वास्तव में, आपके कस्टम मॉड्यूल अन्य रिपॉज़िटरी के मॉड्यूल पर निर्भर हो सकते हैं। Odoo के संबंध में, यह फ़ीचर आपको अपनी रिपॉज़िटरी की ब्रांच में अन्य Git रिपॉज़िटरी से मॉड्यूल जोड़ने की अनुमति देता है। सबमॉड्यूल के माध्यम से अपनी ब्रांच में इन डिपेंडेंसी को जोड़ना आपके कोड और सर्वर की डिप्लॉयमेंट को आसान बनाता है, क्योंकि आप अपनी खुद की रिपॉज़िटरी को क्लोन करते समय सबमॉड्यूल के रूप में जोड़ी गई रिपॉज़िटरी को भी क्लोन कर सकते हैं।

इसके अलावा, आप सबमॉड्यूल के रूप में जोड़ी गई रिपॉज़िटरी की ब्रांच चुन सकते हैं और आपके पास उस रिविज़न का कंट्रोल होता है जिसे आप चाहते हैं। यह आप पर निर्भर करता है कि आप सबमॉड्यूल को किसी विशिष्ट रिविज़न पर पिन करना चाहते हैं या नहीं और कब आप नए रिविज़न में अपडेट करना चाहते हैं।

Odoo.sh में, सबमॉड्यूल आपको अन्य रिपॉज़िटरी में उपलब्ध मॉड्यूल का इस्तेमाल करने और उन पर निर्भर रहने की संभावना देते हैं। प्लेटफ़ॉर्म यह पता लगा लेगा कि आपने अपनी ब्रांच में सबमॉड्यूल के माध्यम से मॉड्यूल जोड़े हैं और उन्हें ऑटोमैटिकली आपके ऐडऑन पाथ में जोड़ देगा ताकि आप उन्हें अपने डेटाबेस में इंस्टॉल कर सकें।

अगर आप अपनी ब्रांच में सबमॉड्यूल के रूप में प्राइवेट रिपॉज़िटरी जोड़ते हैं, तो आपको अपनी Odoo.sh प्रोजेक्ट सेटिंग और अपनी रिपॉज़िटरी सेटिंग में डिप्लॉय की कॉन्फ़िगर करनी होगी। अन्यथा Odoo.sh को उन्हें डाउनलोड करने की अनुमति नहीं होगी। प्रक्रिया सेटिंग > सबमॉड्यूल अध्याय में विस्तार से बताई गई है।

सबमॉड्यूल जोड़ना

Odoo.sh के साथ (आसान)

चेतावनी

अभी इस विधि से प्राइवेट रिपॉज़िटरी जोड़ना संभव नहीं है। हालांकि आप Git के साथ ऐसा कर सकते हैं।

Odoo.sh पर, अपने प्रोजेक्ट के ब्रांच व्यू में, वह ब्रांच चुनें जिसमें आप सबमॉड्यूल जोड़ना चाहते हैं।

ऊपरी दाएं कोने में, Submodule बटन पर क्लिक करें, और फिर Run पर क्लिक करें।

../../../_images/advanced-submodules-button.png

एक फ़ॉर्म के साथ एक डायलॉग दिखाया जाता है। इनपुट को निम्नानुसार भरें:

  • रिपॉज़िटरी यूआरएल: रिपॉज़िटरी का SSH यूआरएल।

  • ब्रांच: वह ब्रांच जिसे आप इस्तेमाल करना चाहते हैं।

  • पाथ: वह फ़ोल्डर जिसमें आप अपनी ब्रांच में इस सबमॉड्यूल को जोड़ना चाहते हैं।

../../../_images/advanced-submodules-dialog.png

Github पर, आप रिपॉज़िटरी के Clone or download बटन से रिपॉज़िटरी यूआरएल प्राप्त कर सकते हैं। use SSH का इस्तेमाल करना सुनिश्चित करें।

../../../_images/advanced-submodules-github-sshurl.png

Git के साथ (ऐडवांस)

टर्मिनल में, उस फ़ोल्डर में जहाँ आपकी Git रिपॉज़िटरी क्लोन की गई है, उस ब्रांच को चेकआउट करें जिसमें आप सबमॉड्यूल जोड़ना चाहते हैं:

$ git checkout <branch>

फिर, नीचे दिए गए कमांड का इस्तेमाल करके सबमॉड्यूल जोड़ें:

$ git submodule add -b <branch> <git@yourprovider.com>:<username/repository.git> <path>

बदलें

  • <git@yourprovider.com>:<username/repository.git> को उस रिपॉज़िटरी के SSH यूआरएल से जिसे आप सबमॉड्यूल के रूप में जोड़ना चाहते हैं,

  • <branch> को उस ब्रांच से जिसका आप उपरोक्त रिपॉज़िटरी में इस्तेमाल करना चाहते हैं,

  • <path> को उस फ़ोल्डर से जिसमें आप यह सबमॉड्यूल जोड़ना चाहते हैं।

अपने बदलाव कमिट और पुश करें:

$ git commit -a && git push -u <remote> <branch>

बदलें

  • <remote> को उस रिपॉज़िटरी से बदलें जिस पर आप अपने बदलाव पुश करना चाहते हैं। स्टैंडर्ड Git सेटअप के लिए, यह origin है।

  • <branch> को उस ब्रांच से बदलें जिस पर आप अपने बदलाव पुश करना चाहते हैं। संभवतः वह ब्रांच जिसका आपने पहले स्टेप में git checkout पर इस्तेमाल किया था।

आप Git सबमॉड्यूल के बारे में ज़्यादा जानकारी के लिए git-scm.com दस्तावेज़ पढ़ सकते हैं। उदाहरण के लिए, अगर आप अपने सबमॉड्यूल को उनके नवीनतम रिवीज़न के लिए अपडेट करना चाहते हैं, तो आप Pulling in Upstream changes चैप्टर को फ़ॉलो कर सकते हैं।

मॉड्यूल इग्नोर करें

अगर आप ऐसी रिपॉज़िटरी जोड़ रहे हैं जिसमें बहुत सारे मॉड्यूल हैं, तो आप उनमें से कुछ को इग्नोर करना चाह सकते हैं अगर कोई ऐसे हैं जो ऑटोमैटिकली इंस्टॉल हो जाते हैं। ऐसा करने के लिए, आप अपने सबमॉड्यूल फ़ोल्डर को . से प्रीफ़िक्स कर सकते हैं। प्लेटफ़ॉर्म इस फ़ोल्डर को इग्नोर करेगा और आप किसी अन्य फ़ोल्डर से उनके सिमलिंक बनाकर अपने मॉड्यूल चुन सकते हैं।