मैं कई परियोजनाओं (ग्रहण परियोजनाओं) है और पता लगाने के लिए क्या वास्तविक दैनिक विकास के मामले में सबसे अच्छा काम किया अलग अलग बातें की कोशिश की है। यहां मुझे जो मिला है और मुझे लगता है कि ज्यादातर लोगों को एक ही चीज़ मिल जाएगी यदि वे परिणामों का ट्रैक रखते हैं और परिणामों का निष्पक्ष विश्लेषण करते हैं।
संक्षेप में निम्नलिखित नियमों को लागू करने के लिए सबसे अच्छा परिणाम देगा:
- प्रत्येक परियोजना के समूह के लिए पृथक भंडार करें।
- प्रत्येक प्रोजेक्ट समूह में परियोजनाओं का एक समूह होता है जो एक-दूसरे से कड़े से जुड़े होते हैं, जिन्हें एक साथ प्रशासित किया जाना चाहिए और जिन्हें आसानी से एक दूसरे से अलग नहीं किया जा सकता है।
- एक प्रोजेक्ट समूह में एक एकल प्रोजेक्ट हो सकता है।
- एक परियोजना समूह है कि कई परियोजनाओं में शामिल है, को देखने के लिए अपनी परियोजनाओं में से कुछ एक दूसरे से decoupled किया जा सकता यदि ऐसा है तो यह छोटे परियोजना समूहों है कि अभी भी कर रहे हैं परियोजनाओं कि कसकर एक दूसरे से जुड़े हुए हैं शामिल में विभाजित किया जा सकता है जांच की जानी चाहिए कि ऐसा करना चाहिए एक साथ प्रशासित किया जाना चाहिए और इसे आसानी से एक दूसरे से नहीं हटाया जा सकता है।
एक परियोजना बारीकी से (उदाहरण के लिए किसी अन्य परियोजना से जुड़ा नहीं है, तो परियोजना:
निम्न दिशानिर्देशों का निर्धारण जो और अधिक विस्तार में एक ही भंडार में डाल करने के लिए परियोजनाओं के लिए इस प्रक्रिया को समझा अन्य परियोजनाओं को खोले बिना खोला जा सकता है और कोई अन्य परियोजनाएं खोले जाने पर प्रोजेक्ट पर खुलती हैं) तो आपको इसे ऊपर से दिए गए उत्तरों में बताए गए कारणों के लिए निश्चित रूप से अपने स्वयं के भंडार में रखना चाहिए।
यदि कोई परियोजना अन्य परियोजनाओं या अन्य परियोजनाओं पर निर्भर है तो परियोजना पर निर्भर करती है तो यह एक दूसरे पर कितनी जुड़ा हुआ है, कितनी अच्छी तरह से उन्हें पैक किया जा सकता है और उन्हें प्रत्येक से कितनी आसानी से हटाया जा सकता है अन्य।
ए) उदाहरण के लिए एक परीक्षण परियोजना है कि JUnit परीक्षण कक्षाएं एक मुख्य परियोजना की कक्षाओं का परीक्षण करने में शामिल है एक मामले में जहां दो परियोजनाओं बहुत एक दूसरे के साथ जुड़े हुए हैं है, आसानी से एक साथ पैक किया जा सकता है और आसानी से नहीं किया जा सकता एक दूसरे से decoupled। इन परियोजनाओं को नीचे भाग सी में बताए गए कारणों के लिए एक ही भंडार में रखा जाना चाहिए।
बी) ऐसे मामले में जहां एक परियोजना किसी अन्य प्रोजेक्ट पर निर्भर करती है ताकि कुछ प्रकार के साझा संसाधन उपलब्ध करा सकें, यह वास्तव में नीचे आ जाता है कि उन्हें कितनी अच्छी तरह से प्रशासित किया जा सकता है और उन्हें कितनी आसानी से एक दूसरे से हटाया जा सकता है। उदाहरण के लिए यदि साझा संसाधनों के साथ परियोजना कई परियोजनाओं पर निर्भर है, तो इसे अपने स्वयं के भंडार में रखा जाना चाहिए क्योंकि अन्य असंबंधित परियोजनाओं को साझा स्रोत कोड प्रोजेक्ट में परिवर्तनों से प्रभावित किया जाता है। इस तरह के मामले में, साझा संसाधन परियोजना को निर्भर परियोजनाओं से सीधे जुड़े होने की बजाय निर्भर परियोजनाओं से तय किया जाना चाहिए। (उदाहरण के लिए, संस्करणित संग्रह फ़ाइलों को बनाने के लिए बेहतर होगा [उदाहरण के लिए "प्रोजेक्टनाम" .1.0.1.0.jar जैसे नाम वाले जार फाइलें] और परियोजनाओं को जोड़कर संसाधनों को साझा करने के बजाय प्रत्येक प्रोजेक्ट में उन लोगों की एक प्रति शामिल करें एक साथ।)
सी) यदि एकाधिक परियोजनाएं जुड़े हुए हैं, तो आसानी से एक साथ प्रशासित किया जा सकता है लेकिन आसानी से एक दूसरे से decoupled नहीं किया जा सकता है, तो यह इस बात पर निर्भर करता है कि वे एक दूसरे के साथ कितनी कसकर जुड़े हुए हैं।
I) यदि परियोजनाओं को एक भंडार में रखा जाता है, तो परियोजनाओं को प्रत्येक बार एक प्रतिबद्धता में एक दूसरे के साथ समन्वयित रखा जाएगा, जो परियोजनाओं को कसकर जुड़े हुए हैं, जो असली जीवन बचतकर्ता हो सकती है। हालांकि, यह इस के ऊपर के उत्तरों में उल्लिखित मुद्दों को भी बनाता है।
II) यदि परियोजनाओं को अलग-अलग भंडारों में रखा जाता है, तो आपको एक-दूसरे के साथ समन्वय करने के लिए सावधानी बरतनी होगी और यह सुनिश्चित करना होगा कि कौन सा काम एक ही सिंक बिंदु से संबंधित है परियोजनाओं में (शायद कुछ परियोजनाओं के प्रतिबद्ध होने के लिए टिप्पणी में एक ही सिंक पॉइंट नंबर शामिल करना जैसे कि परियोजनाओं में काम करने का एक समूह किया जाता है।)
III) तो इस तरह के मामलों में, यह लगभग हमेशा होता है इन परियोजनाओं को एक ही भंडार में एक साथ रखने के लिए बेहतर प्रयास करने के लिए मानव प्रयासों के ऊपरी हिस्से को कम करने और मानवीय त्रुटि से बचने के लिए काम करने की आवश्यकता है। अलग-अलग भंडारों में उन्हें रखने के लिए एकमात्र समय यह हो सकता है कि जब परियोजनाओं में से केवल एक ही नियमित रूप से बदला जा रहा हो और अन्य जुड़े परियोजनाओं को शायद ही कभी बदला जा सके।
स्रोत
2013-05-15 21:01:31
क्या आप विभाजन और संयोजन के बारे में लिंक (या कम से कम शर्तों) पर संकेत दे सकते हैं? उदाहरण के लिए मुझे लगता है कि आप सबमिड्यूल (या विकल्प) का मतलब हो सकता है, लेकिन शायद अधिक? विभाजन के बारे में मैंने पहले नहीं सुना है, इसलिए मैं वास्तव में उत्सुक हूं। –
विभाजन करके मेरा मतलब है एक संग्रह लेना और इसे एक बार रूपांतरण का उपयोग करके एकाधिक में विभाजित करना, उदा। [गिट फ़िल्टर-शाखा - सब्सडायरेक्टरी-फ़िल्टर] के साथ (http://git-scm.com/docs/git-filter-branch#_examples)। संयोजन के माध्यम से मेरा मतलब है कि कई रिपॉजिटरीज़ लेना और संयुक्त इतिहास के साथ एक नया भंडार बनाना (फिर से, एक बार रूपांतरण), उदा। [सिलाई-रेपो स्क्रिप्ट] के साथ (http://search.cpan.org/~book/Git-FastExport-0.07/script/git-stitch-repo)। संयोजन कठिन है क्योंकि अलग-अलग इतिहास को एक साथ "बुनाई" होना पड़ता है। – robinst
यह उत्तर वास्तव में उपयोगी है। मैं थोड़ा और आगे जाऊंगा और कहूंगा कि यदि आपने एक "काम" के लिए कई परियोजनाओं का निर्णय लिया है, तो आपको परियोजनाओं के लिए अलग-अलग चक्र भी रखना चाहिए। अन्यथा, बस एक ही परियोजना बनाएं। तो, एक एकल प्रोजेक्ट बनाएं, और यदि आपको भविष्य में इसे विभाजित करने की आवश्यकता है, तो इसे विभाजित करें और प्रत्येक प्रोजेक्ट के लिए नई रिपॉजिटरी बनाएं। पुराने कारणों को संग्रहित करने के लिए रखें। इसे सरल रखें, जारी रखें। –