क्या कोई असली परियोजनाओं में नई गिट सुपर/सबप्रोजेक्ट सुविधा का उपयोग कर रहा है? यह कितना अच्छा काम करता है? उदाहरण के लिए, मैं समझता हूं कि अगर मैं एक उपप्रोजेक्ट को दबाता हूं तो मुझे सुपरप्रोजेक्ट हुक को मैन्युअल रूप से कॉल करना होगा (शायद सबप्रोजेक्ट हुक का उपयोग करना, लेकिन फिर भी)?क्या कोई वास्तव में गिट सुपर/सबप्रोजेक्ट का उपयोग कर रहा है?
उत्तर
सबमिशन का उपयोग करके, आप अपने गिट वर्कस्पेस (जिसका अर्थ है "सुपर-प्रोजेक्ट" गिट रिपोजिटरी) में कॉन्फ़िगरेशन में परिभाषित कर रहे हैं।
"कॉन्फ़िगरेशन" द्वारा, मेरा मतलब है "आपके वर्कस्पेस में काम करने के लिए आवश्यक टैग या SHA-1 नोड की सूची"।
(और काम से, मेरा मतलब है कि आप अपने कार्यक्षेत्र में जो भी "विकास प्रयास" कर रहे हैं: क्लासिक संकलन, या पैच, या विलय, या तैनाती, या ...)।
मामला है जब अपने एक सुपर परियोजना और "git update
" अपने submodules क्लोनिंग कर रहे हैं यही कारण है कि: यदि आपका सटीक रेपोस SHA1 जो पहले सुपर परियोजना (the index में के रूप में gitlink दर्ज की गई) में अंजाम दिया checkouting कर रहे हैं।
अन्य मोड तब होता है जब आप अपने सुपर-प्रोजेक्ट और पर एक या अधिक submodules पर काम कर रहे हैं।
इसका मतलब है, किसी दिए गए सबमिड्यूल के लिए, आपने एक विशिष्ट शाखा की जांच की है (अब आप उस submodules की सामग्री के लिए एक अलग सिर का उपयोग नहीं कर रहे हैं, बल्कि एक शाखा की नोक के लिए एक सूचक)।
फिर, "एक सबमिशन को दबाकर" का मतलब है कि एक उप-मॉड्यूल (और केवल वह एक) युक्त दूरस्थ भंडार को अद्यतन करना।
उस अंतिम परिदृश्य में वास्तविक चाल (जो आपको एक हुक के लायक हो सकती है) वह है जब आप सुपर-प्रोजेक्ट को दबा रहे हैं: आपको पहले अपने सभी उप-मॉड्यूल को धक्का देना सुनिश्चित करना होगा।
हमेशा superproject यह संदर्भ के लिए परिवर्तन प्रकाशित करने से पहले submodule परिवर्तन को प्रकाशित करें। आप submodule परिवर्तन प्रकाशित करने के लिए भूल जाते हैं, दूसरों (सुपर परियोजना के) भंडार क्लोन करने के लिए सक्षम नहीं होगा
आप can configure a submodule to follow a branch मत भूलना।
यह सबोडोड्यूल के अल्फा संस्करण की तरह लगता है, बहुत सी जटिलताओं ...: एस – inf3rno
यदि आप सबमिड्यूल का मतलब है, तो निश्चित रूप से।
submodules हर जगह पता नहीं है और पता नहीं होना चाहिए। उदाहरण के लिए, मेरे पास एक सबमिशन है जिसका उपयोग कई परियोजनाओं में किया जाता है जो मुझे पता है (और संभवतः कई जो मैं नहीं करता)।
एक सबमिशन में धक्का देना किसी भी तरह से प्रसंस्करण वाले प्रोजेक्ट द्वारा उपयोग किए गए कोड के संस्करण को प्रभावित नहीं करता है, इसलिए मुझे यकीन नहीं है कि आप एक हुक को वैसे भी करना चाहते हैं।
उदाहरण के लिए, सबमिशन एक बड़े sw का हिस्सा है, जब कोई पुश करता है तो मैं पूरे पैकेज को संकलित करना चाहता हूं। – Makis
आप दोनों अंक याद कर रहे हैं। 1) सबमिशन बदलने से इसमें कोई भी परियोजना नहीं बदली है। बिलकुल। एक नया निर्माण पिछले निर्माण के समान होगा। 2) एक दिए गए सबमिशन का उपयोग हजारों अनुप्रयोगों द्वारा किया जा सकता है और यह नहीं पता कि वे सभी क्या हैं। – Dustin
बेशक मॉड्यूल का इस्तेमाल विभिन्न अनुप्रयोगों द्वारा किया जा सकता है लेकिन निश्चित रूप से मुख्य प्रोजेक्ट में बिल्ड स्क्रिप्ट होगी जिसमें मॉड्यूल शामिल होगा। मुझे यह "बिल्कुल" चीज़ नहीं समझा जाता है - अगर मेरे पास दो submodules के साथ एक प्रोजेक्ट है और कोई भी submodules में से एक में अपने परिवर्तन को धक्का देता है तो सबमिशन कैसे बदलता है? यदि यह बदलता है और मेरे पास एक बिल्ड स्क्रिप्ट है जिसमें उस सबमिशन शामिल है, तो निश्चित रूप से बिल्ड अलग है। – Makis
एफडब्ल्यूआईडब्ल्यू, हम गिट को छलांग लगाने की कोशिश कर रहे हैं, और हमारी परियोजना (bitweaver, एक सामग्री प्रबंधन प्रणाली) nearly 160 repositories के साथ एक अत्यधिक मॉड्यूलर सिस्टम है)। एक "निर्माण" में आम तौर पर दो दर्जन या अधिक उप-भंडार होते हैं। हमने सीवीएस में 'वर्चुअल मॉड्यूल' का इस्तेमाल किया, और यह हमारे लिए शानदार रूप से काम करता था, हालांकि सीवीएस की स्टेजिंग के लिए इसकी अपनी सीमाएं हैं।
गिट submodules कुछ गंभीर सीमाएं हैं, और आप निश्चित रूप से mercurial के कार्यान्वयन का मूल्यांकन करना चाहिए क्योंकि यह बाहरी/मॉड्यूलर परियोजनाओं के लिए निश्चित रूप से अधिक अनुकूल और लचीला है (यानी यह अन्य वीसीएस सिस्टम, यहां तक कि एचजीजीआईटी का समर्थन करता है)।
प्रत्येक submodule एक विशेष के लिए कड़ी मेहनत से जुड़ा हुआ है के लिए प्रतिबद्ध है जब आप सुपर respository में "Git submodule जोड़ने":
यहाँ सबसे बड़ी चुनौतियों में कर रहे हैं। यह डिज़ाइन द्वारा है, और गिट रखरखावकर्ता द्वारा लाभ के रूप में मांगा गया है, इसलिए मैं जल्द ही इसे किसी भी समय बदलने की उम्मीद नहीं करता। यह में हमारे जैसे सिस्टम है जहां प्रतिबद्धता सबोड्यूल में हमेशा होती है। आपको सुपर प्रोजेक्ट को अपडेट करना होगा, प्रारंभिक सबमिशन अपडेट के बाद मास्टर के लिए अपने सब-रेपो अपडेट करें। ( हमारे समाधान के लिए नीचे सुपरगिट देखें)।
आप रूट से सभी उप-रेपो के को आसानी से प्रतिबद्ध नहीं कर सकते हैं। यह भी बहुत परेशान है, नीचे सुपरगिट देखें।
विभिन्न gotchas जो उत्तेजित हो सकते हैं, विशेष रूप से चीजें जो "चुपचाप परिवर्तनों को ओवरराइट करें"।
supergit
हम एक shell script call supergit कि कष्ट के कुछ संभालती लिखा है। यह क्लोन, सबमिशन इनिट, अपडेट, और चेकआउट मास्टर सब एक में गिर गया है। यह सुपर-रेपो में सभी निर्देशिकाओं के लिए गिट कमांड भी करेगा (प्रकार के थोक गिट प्रसंस्करण)।
एचटीएच, शुभकामनाएं।
+1 यह पेशेवरों और विपक्ष का एक अच्छा अवलोकन है। हार्ड-कोडित काम करने के लिए एफवाईआई, यह उन मामलों में उपयोगी होने की उम्मीद है जहां ज्ञात, अच्छे संस्करण (उदाहरण के लिए उत्पादन टैग) के लिए पनडुब्बियों को शायद ही कभी (या मैन्युअल रूप से अपडेट किया जाता है) - इसलिए यह उस मामले में बहुत अच्छी तरह से काम करता है। – ashes999
- 1. ईएसबी टूलकिट 2.0 - क्या कोई वास्तव में इसका उपयोग कर रहा है?
- 2. कोई भी पावरहेल में बीडीडी का उपयोग कर रहा है?
- 3. क्या कोई फ़ायरफ़ॉक्स एक्सयूएल आईडीई का उपयोग कर रहा है?
- 4. क्या कोई स्पेक्ट्रर बीडीडी फ्रेमवर्क का उपयोग कर रहा है?
- 5. क्या कोई कानबान का उपयोग कर रहा है?
- 6. गिट पुल का आउटपुट वास्तव में क्या मतलब है?
- 7. + = (ओ, तर्क) => वास्तव में क्या प्राप्त कर रहा है?
- 8. कोई भी उत्पादन में हाइपरडेक्स का उपयोग कर रहा है?
- 9. गिट-फ्लो का सफलतापूर्वक उपयोग कौन कर रहा है?
- 10. यह मैक्रो वास्तव में क्या कर रहा है?
- 11. वास्तव में पोर्टेबल गिट
- 12. क्या कोई ओबीआईईई (पूर्व में सिबेल Analytics) का उपयोग कर रहा है? आपका अनुभव क्या है
- 13. कोई भी इकाई फ्रेमवर्क * वेल * का उपयोग कर रहा है?
- 14. सी # में वेबकिट का उपयोग करते समय मैं वास्तव में क्या एम्बेड कर रहा हूं?
- 15. क्या कोई रैकेट वाणिज्यिक रूप से उपयोग कर रहा है?
- 16. कोई भी राइनो सुरक्षा का उपयोग कर रहा है?
- 17. क्या कोई भी अपने वेब अनुप्रयोगों में XForms का उपयोग कर रहा है?
- 18. "गिट रिमोट एड" वास्तव में क्या करता है?
- 19. क्या कोई भी टॉमकैट प्रतिस्थापन के रूप में स्प्रिंगसोर्स टीसी सर्वर का उपयोग कर रहा है?
- 20. जांच रहा है कि कोई तत्व वास्तव में उपयोगकर्ता को
- 21. गिट रीबेज वास्तव में क्या करता है --स्किप करते हैं?
- 22. बिना खुले फ़ाइल (वास्तव में) इसे लॉक कर रहा है?
- 23. मेरे विंडोज ऐप वास्तव में कितनी मेमोरी का उपयोग कर रहा है?
- 24. बाध्यकारी का मतलब वास्तव में क्या है?
- 25. सिस्टम.डिग्नोस्टिक्स.प्रोसेस का उपयोग वास्तव में क्या करता है?
- 26. क्या कोई हैस्केल में वेब विकास करने के लिए सीमित निरंतरता का उपयोग कर रहा है?
- 27. IsPostBack का वास्तव में क्या अर्थ है?
- 28. max_connections का वास्तव में क्या अर्थ है?
- 29. गिट शाखा का उपयोग कर heroku उलझन में है!
- 30. असीमित नेस्टेड सूचियों में वास्तव में क्या हो रहा है?
एक सबप्रोजेक्ट एक सबमिशन के समान है? मैंने उनको इस्तेमाल किया है। – Apreche