2009-07-30 12 views
7

मैं शुरुआत में हमारे सबवर्जन रेपॉजिटरीज़ को व्यवस्थित करने का सबसे अच्छा तरीका जानने की कोशिश कर रहा हूं।सबवर्सन रिपोजिटरीज का निर्माण कैसे करें

तो क्या प्रत्येक प्रोजेक्ट के लिए प्रारंभिक भंडार बनाने के लिए उप-रिपोजिटरी बनाने का सबसे अच्छा अभ्यास है?

और कौन से भंडारों में एक ट्रंक, शाखा, आदि होना चाहिए?

इसके अलावा, मैं रूट स्तर भंडार पर एक ट्रंक, शाखा, और टैग फ़ोल्डरों को न बनाने के लिए यह सबसे अच्छा अभ्यास सुनता हूं?

मुझे पता है कि जब मैं एक और टीम में था, तो हमने प्रोजेक्ट ए को खींच लिया, लेकिन यह एक ट्रंक, शाखा फ़ोल्डरों को खींच नहीं पाया जो अच्छा था लेकिन मुझे नहीं पता कि इस तरह ऐसा करने के लिए सर्वर पर यह कैसे संरचित किया गया था ।

+0

बल्कि 'TortoiseSVN' की तुलना में 'SVN' के साथ Retagged के बाद से इस भंडार/तोड़ साइड मुद्दा है, नहीं एक क्लाइंट-साइड मुद्दा है । –

उत्तर

8

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

+0

इसलिए जब मैं किसी प्रोजेक्ट के लिए उप-फ़ोल्डर बनाता हूं, तो मैं यूआरएल की प्रतिलिपि करता हूं, स्थानीय रूप से उस फ़ोल्डर पर जाता हूं और फिर मैं अपने प्रोजेक्ट फ़ोल्डर के नीचे सर्वर पर बनाए गए ट्रंक फ़ोल्डर में इसे कैसे वायरस कर सकता हूं? – PositiveGuy

+0

एक नया भंडार स्थापित करते समय मैं यही करता हूं। मैं "http://example.com/svn/" जैसे यूआरएल के साथ वैश्विक भंडार बना देता हूं। मैं इसे एक नए स्थानीय फ़ोल्डर में देखता हूं, आईई। "उदाहरण-एसवीएन" (जो भी आप चाहते हैं)। अब, "उदाहरण-एसवीएन" संपूर्ण भंडार की कार्यशील प्रति है। यदि आप ट्रंक/शाखाओं/टैग फ़ोल्डर्स सेट अप करना चाहते हैं, तो "project1" के लिए "example-svn" के अंदर एक नया फ़ोल्डर बनाएं, और उस फ़ोल्डर के अंदर "ट्रंक", "शाखाएं" और "टैग" बनाएं। फिर, प्रोजेक्ट 1 के लिए सभी फाइलों को "ट्रंक" में पेस्ट करें, "प्रोजेक्ट 1" पर राइट क्लिक करें और "एड" चुनें। Commit और आप जाने के लिए अच्छे हैं। – Nicole

+0

उपरोक्त उदाहरण में, यदि आप संपूर्ण भंडार (सभी परियोजनाओं) को देखना चाहते हैं, तो आप "http://example.com/svn/" का उपयोग करेंगे।यदि आप केवल प्रोजेक्ट 1 को देखना चाहते हैं, तो "http://example.com/svn/project1" – Nicole

14

आप भंडार में कई परियोजना रखना चाहते हैं मैं इस संरचना के लिए जाना होगा

/project1 
    /trunk 
    /branches 
    /tags 
/project2 
    /trunk 
    /branches 
    /tags 
... 

आप केवल एक परियोजना रखना चाहते हैं यह कर देगा: बचाव के लिए

/trunk 
/branches 
/tags 
+0

धन्यवाद। और इसलिए यदि मैं पहली बार प्रोजेक्ट 1 में जांचना चाहता था, तो मुझे अभी प्रोजेक्ट 1 \ ट्रंक फ़ोल्डर से यूआरएल मिलेगा और उसके बाद सही होगा? – PositiveGuy

+0

यदि आप प्रोजेक्ट 1 पर काम करना चाहते हैं तो आप अपने चेकआउट – RaYell

+0

के लिए बस 'svn: // path.to.your.repo/project1/trunk' जैसे कुछ का उपयोग करेंगे, धन्यवाद! – PositiveGuy

4
+0

हाँ, और यह आपको और भी भ्रमित करने के लिए जानकारी से भरा हुआ पैक है। मैं उस के माध्यम से चला गया है और यह इस तरह के सर्वोत्तम प्रथाओं नहीं देता है। – PositiveGuy

+3

मैंने पाया कि यह मेरे लिए बहुत कुछ चीजों को मंजूरी दे दी है। राययल का जवाब किताबों की सिफारिशों से लगभग सीधे है। –

1

अलग-अलग भंडार रखने से आप प्रति भंडार आधार पर बैकअप शेड्यूल और संग्रहण स्थान अनुकूलित कर सकते हैं। इसके अलावा, अगर आपको कभी-कभी भंडार में खोदना पड़ता है और कुछ रखरखाव या सफाई कार्य करता है (कहें, आप रेपो से पूरी तरह से प्रतिबद्धता हटाना चाहते हैं ... दुर्लभ लेकिन संभव) अलग-अलग भंडार रखने से आप न्यूनतम हस्तक्षेप के साथ ऐसा करने की अनुमति देंगे अन्य उपयोगकर्ताओं और अन्य repos के लिए।

कहा जा रहा है - छोटी परियोजनाओं के लिए, ये चीजें आम तौर पर एक बड़ी चिंता नहीं होती हैं। मैं ट्रंक/शाखाओं/टैग सेटअप के लिए एक और हार्दिक सिफारिश देता हूं।

5

मैं बढ़िया, बहुत व्यवस्थित, स्वयं निहित, संरचित भंडार पसंद करता हूं। भंडार रखरखाव प्रक्रिया के सामान्य (आदर्श) दृष्टिकोण को चित्रित करने के लिए diagram है। उदाहरण के लिए, (हर परियोजना भंडार होना चाहिए) भंडार की मेरी प्रारंभिक संरचना है:

/project 
    /trunk 
    /tags 
     /builds 
      /PA 
      /A 
      /B 
     /releases 
      /AR 
      /BR 
      /RC 
      /ST 
    /branches 
     /experimental 
     /maintenance 
      /versions 
      /platforms 
     /releases