2009-02-21 20 views
29

मैंने अभी अपनी स्कूल परियोजनाओं और गृहकार्य को संग्रहीत करने के लिए Google Code एसवीएन भंडार बनाया है, और स्कूल और घर के बीच आसानी से स्थानांतरित करने की अनुमति देने के लिए।एक एसवीएन भंडार में कई परियोजनाओं के लिए फ़ोल्डर संरचना?

इसकी डिफ़ॉल्ट निर्देशिका यह बनाता हैं:

https://simucal-projects.googlecode.com/svn/trunk/
https://simucal-projects.googlecode.com/svn/tags/
https://simucal-projects.googlecode.com/svn/branches/

मैं एक से अधिक परियोजना के लिए भंडार का इस्तेमाल कभी नहीं किया है, लेकिन पढ़ने के बाद: One svn repository or many? मैं मैंने अपने सभी यादृच्छिक स्कूल परियोजनाओं के लिए एक ही भंडार रखने का फैसला किया है।

क्या मुझे उपरोक्त फ़ोल्डर संरचना को दोहराना चाहिए, लेकिन प्रत्येक प्रोजेक्ट के लिए?

https://simucal-projects.googlecode.com/svn/projectA/trunk/
https://simucal-projects.googlecode.com/svn/projectA/tags/
https://simucal-projects.googlecode.com/svn/projectA/branches/

https://simucal-projects.googlecode.com/svn/projectB/trunk/
https://simucal-projects.googlecode.com/svn/projectB/tags/
https://simucal-projects.googlecode.com/svn/projectB/branches/

यह आप बहु परियोजना-इन-वन-रेपो लोग क्या है?

उत्तर

43

आपके पास इसके लिए दो विकल्प हैं।

https://simucal-projects.googlecode.com/svn/projectA/trunk/ 
https://simucal-projects.googlecode.com/svn/projectA/tags/ 
https://simucal-projects.googlecode.com/svn/projectA/branches/ 

https://simucal-projects.googlecode.com/svn/projectB/trunk/ 
https://simucal-projects.googlecode.com/svn/projectB/tags/ 
https://simucal-projects.googlecode.com/svn/projectB/branches/ 

विकल्प 2 होगा प्रत्येक परियोजना के ट्रंक के तहत एक सबफ़ोल्डर होने के साथ एक ट्रंक के लिए:

https://simucal-projects.googlecode.com/svn/trunk/projectA/ 
https://simucal-projects.googlecode.com/svn/tags/projectA/ 
https://simucal-projects.googlecode.com/svn/branches/projectA/ 

https://simucal-projects.googlecode.com/svn/trunk/projectB/ 
https://simucal-projects.googlecode.com/svn/tags/projectB/ 
https://simucal-projects.googlecode.com/svn/branches/projectB/ 
एक आप पहले से ही उल्लेख किया है, और कहा कि (विकल्प 1) प्रत्येक परियोजना के लिए एक ट्रंक है

विकल्प 1 का लाभ यह है कि आप प्रत्येक प्रोजेक्ट को स्वतंत्र रूप से शाखा और टैग कर सकते हैं। यह वांछनीय है यदि आपको प्रत्येक परियोजना को अलग से तैनात करने की आवश्यकता है।

विकल्प 2 वांछनीय है अगर सभी परियोजनाओं को एक साथ तैनात किया जाता है। ऐसा इसलिए है क्योंकि तैनाती के दौरान आपको केवल भंडार को टैग करना होगा।

चूंकि आप स्कूल परियोजनाओं के लिए सबवर्जन का उपयोग कर रहे हैं, तो आपको खुद से पूछना होगा कि आपको कभी भी अपना काम टैग करने की आवश्यकता होगी या नहीं। आप खुद से यह भी पूछ सकते हैं कि आपको कभी भी शाखाएं बनाने की आवश्यकता है (शायद आप चाहते हैं कि आप थोड़ा प्रयोग करना चाहते हैं)। आपको खुद से यह पूछने की भी आवश्यकता होगी कि क्या आप अपने सभी कार्यों को एक साथ एक साथ बांटने में प्रसन्न हैं, भले ही आप स्वतंत्र रूप से प्रत्येक परियोजना को ब्रांच करने की लचीलापन पसंद करते हैं।

अंगूठे का नियम जो मैं हमेशा पालन करता हूं: जो भी हम एक साथ तैनात करते हैं, एक साथ ट्रंक करें।

(वैसे - आप एक ही भंडार में कई चड्डी हो सकता है - यह सिवाय इसके कि प्रत्येक भंडार इसके खुद के संशोधन काउंटर बनाए रखती है और आप खजाने के बीच मर्ज नहीं कर सकते कई खजाने में एक ट्रंक होने के लगभग बराबर है।)

+0

@ सिमुकल मुझे लगता है कि यह स्वीकार्य उत्तर होना चाहिए - धन्यवाद ट्रम्पी! –

+0

@ टोनीडे, किया गया। मुझे याद दिलाने के लिये धन्यवाद। – mmcdole

9

यही वह है जो मैं अपने घर स्रोत नियंत्रण के लिए उपयोग करता हूं।

जहां मेरे पास केवल एक प्राथमिक भंडार है।

भंडार/Project1/ट्रंक
भंडार/Project1/टैग
भंडार/Project1/शाखाएं

भंडार/Project2/ट्रंक
भंडार/Project2/टैग
भंडार/Project2/शाखाएं

मुझे यह संरचना पसंद है, परियोजनाओं को संदर्भित करना और अखंडता को बनाए रखना बहुत आसान है।

+0

मैं दृढ़ता से इस लेआउट के पक्ष में हूं। मैंने सुना है कि Pawel क्या कहता है, और यदि भंडार एसवीएन में बनाने और प्रशासित करने के लिए आसान थे क्योंकि वे गिट के साथ हैं, तो मैं सहमत हूं। लेकिन अगर आप प्रत्येक प्रोजेक्ट का इलाज कर सकते हैं * जैसे कि * यह स्वयं का भंडार था, चीजें बस अच्छी तरह से काम करती हैं। –

+0

हां बिल्कुल, परिदृश्य में वर्णित है, वैसे भी यह एक बहुत से भंडार लेआउट के लिए अव्यवहारिक लगता है।आप अपने सभी कोड का चयन करने या प्रत्येक परियोजना को अलग-अलग प्राप्त करने के लिए मुख्य भंडार के लिए एक सरल प्राप्त कर सकते हैं। –

+0

वीएस -2008 और अंखएसवीएन 2.0 के साथ यह बहुत ही प्रबंधनीय और उपयोग करने में आसान है मल्टी प्रोजेक्ट सॉल्यूशंस इत्यादि। –

1

इस प्रश्न का कोई स्पष्ट जवाब नहीं है क्योंकि यह आपकी परियोजनाओं के अनुकूल होने पर निर्भर करता है।

  1. मैं का प्रयोग करेंगे/PROJECTA/ट्रंक लेआउट अगर वहाँ था या तो एक भारी विकास परियोजना और सब कुछ के अनुसार चल रहा है के बाद से वहाँ यह के बीच इतना कनेक्शन (घटकों/परियोजनाओं है कि अकेले खड़े) नहीं है अलग किया जाना चाहिए। हालांकि, आप प्रति परियोजना एक एसवीएन भंडार का उपयोग भी कर सकते हैं। याद रखें कि आप svn co http: //..../svn/ का उपयोग करके सभी परियोजनाओं को जांचने में सक्षम नहीं होंगे क्योंकि यह सभी परियोजनाओं से सभी टैग और शाखाएं भी लाएगा, न केवल ट्रंक।
  2. /ट्रंक/प्रोजेक्टए निश्चित रूप से बेहतर होगा यदि आपकी परियोजनाएं/घटक कसकर एक साथ हैं और आपको उन्हें एक ही संशोधन (जैसे मुख्य परियोजना से बहुत निकटता वाली लाइब्रेरी) से टैग और शाखा की आवश्यकता है। यदि आप चाहें तो अपने नवीनतम ट्रंक संशोधन पर सभी परियोजनाओं को प्राप्त करने के लिए आप svn co http: //.../svn/trunk/ का भी उपयोग कर सकते हैं।

एक रखरखाव बिंदु से मैं लगभग हमेशा दूसरी तरफ पसंद करता हूं; लेकिन यदि आपकी परियोजनाएं बड़ी हो सकती हैं और लंबी हो सकती हैं, तो प्रति परियोजना अलग-अलग भंडारों का उपयोग करना बेहतर होगा।

इसके अलावा: कृपया जांच करें कि आपको वास्तव में अपने होमवर्क के लिए Google Code सेवाओं की आवश्यकता है क्योंकि इसका उद्देश्य ओएसएस का समर्थन करना है। आप हमेशा एसवीएन का उपयोग स्थानीय रूप से या यहां तक ​​कि एसएसएच के माध्यम से भी कर सकते हैं, ताकि आप अपने भंडारों को यूएसबी स्टिक या कुछ कंप्यूटर पर भी डाल सकें जिन्हें दूरस्थ रूप से एक्सेस किया जा सके; आपको वास्तव में इसके लिए होस्टिंग की आवश्यकता नहीं है। गोपनीयता चिंताओं भी हो सकती है।

+2

ठीक है, मेरा कोड ~ ओपन-सोर्स होगा और सिर्फ इसलिए कि स्कूल के लिए इसका मतलब यह नहीं है कि इसका कोई संभावित मूल्य नहीं है । जेनेटिक एल्गोरिदम में विशेष रूप से मेरा काम, लोगों को इसे पढ़ने के लिए मूल्यवान लग सकता है। Google- कोड बिल्कुल इस के लिए डिज़ाइन किया गया है। – mmcdole

+1

मैं थंबड्राइव प्रकार का लड़का नहीं हूं और एसवीएन स्थानीय रूप से इस तरह का हरा देता हूं कि मैं इसे पहली जगह क्यों स्थापित करने का प्रयास कर रहा हूं। पोर्टेबिलिटी। – mmcdole

+0

शायद आप unfuddle (http://www.unfuddle.com) को आजमाएं। वे आपको एक मुफ्त svn भंडार देंगे और आपका कोड निजी हो सकता है। – Trumpi

1

यदि आप केवल एक भंडार रखने का आग्रह करते हैं (मैं खुद को शिविर में नहीं हूं) और ब्रांचिंग करता हूं तो मुझे लगता है कि आप जो प्रस्तावित करते हैं वह अच्छा है। लेकिन फिर, मुझे लगता है कि एक एसवीएन भंडार एक परियोजना के बराबर है।

+2

मेरी परियोजनाएं बहुत हल्के वजन हैं। भंडार का पूरा बिंदु मेरे लिए हर जगह मेरे साथ कोड ले जाने के बिना स्कूल के लिए मेरी सभी छोटी छोटी परियोजनाओं पर काम करने में सक्षम होना है। इन सूक्ष्म परियोजनाओं में से प्रत्येक के लिए भंडार रखना बोझिल होगा। – mmcdole

6

वास्तविक जीवन उदाहरण: अपाचे परियोजनाएं repository

1

फ़ोल्डर लक्ष्यों (संस्करण में) के साथ ट्रैक करने वाले मुख्य लक्ष्यों में से एक, एक्सेस कंट्रोल मैनेजमेंट है।

अगर कोई टीम (जो ट्रंक पर काम करता है) का विकास करना और टीम (जो शाखाओं के साथ काम कर) इस संरचना अच्छा है बनाए रखने के अलग करने के लिए की जरूरत है:

/trunk 
     /Project1 
     /Project2 
/branches 
     /Project1 
     /Project2 
/tags 
    /Project1 
    /Project2 

और हम के लिए हर परियोजना के प्रवेश की अनुमति चाहते हैं एक विशिष्ट उपयोगकर्ता समूह, यह संरचना अच्छी है:

/Project1 
     /trunk 
     /branches 
     /tags 
/Project2 
     /trunk 
     /branches 
     /tags 
संबंधित मुद्दे