2008-09-09 12 views
19

मैं ऐसी कंपनी के लिए काम करता हूं जिसका प्राथमिक व्यवसाय सॉफ्टवेयर से संबंधित नहीं है। स्रोत नियंत्रण का उपयोग करने के लिए अधिकांश दस्तावेज व्यावसायिक या ओपन सोर्स प्रोजेक्ट्स के दिमाग में विकास टीम के लेखन के साथ लिखे गए हैं। घर सॉफ़्टवेयर में लिखने वाले किसी व्यक्ति के रूप में मैं कह सकता हूं कि काम अलग-अलग किया जाता है, तो यह वाणिज्यिक या ओपन सोर्स सेटिंग में होगा। इसके अलावा संग्रहित प्रक्रियाओं और डेटाबेस स्क्रिप्ट्स हैं जिन्हें कोड के साथ समन्वयित करने की आवश्यकता है।घर सॉफ्टवेयर परियोजनाओं में आप एक सबवर्जन रिपोजिटरी कैसे व्यवस्थित करेंगे?

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

उत्तर

3

आप www.unfuddle.com जैसी सेवा का उपयोग करने के लिए एक सेवा का उपयोग कर सकते हैं मुफ्त एसवीएन या जीआईटी भंडार।

हम अनफुडल का उपयोग करते हैं और यह वाकई बहुत अच्छा है। मुफ्त और भुगतान संस्करण हैं (आपकी जरूरतों के आधार पर)।

या, आप निश्चित रूप से एक स्थानीय प्रतिलिपि स्थापित कर सकते हैं। http://www.google.com/search?rlz=1C1GGLS_enUS291&aq=f&sourceid=chrome&ie=UTF-8&q=set+up+svn

0

this thread में निर्दिष्ट है, वितरित VCSs (Git, मर्क्युरियल) के रूप में केंद्रीकृत की तुलना में एक बेहतर मॉडल, शाखा निर्माण आसानी, शाखा विलय आसानी, कोई जरूरत की वजह से कर रहे हैं: ट्यूटोरियल के बहुत सारे है कि के लिए गूगल के जरिये पाया जा सकता हैं एक विशेष सर्वर स्थापित करने के लिए, काम पर नेटवर्क पहुंच और कुछ अन्य फायदे रखने की आवश्यकता नहीं है। यदि आप अकेले काम करेंगे तो डीवीसीएस आपको अपनी परियोजनाओं में लोगों को शामिल करने की इजाजत देता है यदि आवश्यकता बहुत आसानी से उत्पन्न होती है।

किसी भी तरह, सीधे आपके प्रश्न का उत्तर देने के लिए, एसवीएन स्थापित करने का एक तरीका प्रति परियोजना एक भंडार होगा और, संग्रहीत प्रक्रियाओं और स्क्रिप्ट्स और पुस्तकालयों को साझा किया जाता है या नहीं, इस पर निर्भर करता है कि स्क्रिप्ट के लिए प्रत्येक प्रोजेक्ट पेड़ पर एक निर्देशिका बनाएं और संग्रहीत प्रक्रियाओं, या साझा कोड के लिए एक पूर्ण भंडार।

6

उपversण के लिए, Assembla भी है जो Trac और अन्य उपयोगी टूल के साथ आता है। यह मुफ़्त है या यदि आप प्रति परियोजना अधिक जगह या उपयोगकर्ताओं की आवश्यकता है तो आप एक खाते के लिए भुगतान कर सकते हैं।

2

मेरी कंपनी के लिए, मैं svn + ssh और कुंजी-आधारित प्रमाणीकरण का उपयोग करता हूं। आप इसे विंडोज क्लाइंट और लिनक्स क्लाइंट दोनों के साथ कर सकते हैं। एक बार पासवर्ड टाइप करने के बजाए लॉगिन करने के लिए एसएसएच कुंजी का उपयोग करते समय आप अपनी चाबियाँ सीधे प्राप्त करने के बाद उपयोग करना वास्तविक है।

Here's an article on setting up svn+ssh सुरक्षा पर नोट्स के साथ। यदि आप इन सभी चीजों को समझते हैं और इन चरणों का पालन करते हैं, तो आप एक अच्छी शुरुआत के लिए बंद हो जाएंगे।

This article svn खातों के लिए अपने ssh लॉगिन को और सुरक्षित करने के कई तरीकों का वर्णन करता है।

मैं विशेष रूप से उस सर्वर तक किसी अन्य पहुंच के साथ svn पहुंच के लिए खातों को बनाने की अनुशंसा करता हूं। मेरा अनुमान है कि आप डीबी में अपनी संग्रहीत प्रोसेस को अपडेट करने के लिए दैनिक निर्माण या स्वचालित स्क्रिप्ट का उपयोग करेंगे। दैनिक निर्माण में अपने विशेष खाते और अपनी स्वयं की एसएस कुंजी हो सकती है। मुझे अपने स्वचालित उपकरणों को एक मानव उपयोगकर्ता के समान लॉगिन के साथ चलाने के लिए पसंद नहीं है (इसलिए मुझे पता है कि कौन सा उपकरण टूटा हुआ है)।

यदि आप सभी सुरक्षा चाल को नहीं समझते हैं, तो Google खोजना आपको कुछ मदद मिल सकता है। यदि आपको परेशानी है, तो सुरक्षा चाल के बिना पहले सेट अप करें। यह समस्या निवारण के लिए थोड़ा सा आसान बनाता है।

शुभकामनाएं, और स्रोत नियंत्रण के लाभ प्राप्त करने का आनंद लें!

3

आपकी परियोजनाओं के लिए एक भंडार शायद पर्याप्त है।

/first-project/trunk 
/first-project/branches 
/first-project/tags 
/another-project/trunk 
/another-project/branches 
/another-project/tags 
/common-stuff/trunk 
/common-stuff/branches 
/common-stuff/tags 

ध्यान रखें कि आप हमेशा भंडार बाद में पुनर्निर्माण कर सकते हैं: मैं ठेठ दृष्टिकोण है कि अनुक्रमित परियोजना द्वारा लेआउट (O'Reilly Subversion book से this section देखें) की तरह।

इसके अलावा, घर के सामान के लिए, मैं डेटा स्टोर के लिए एफएसएफएस पसंद करता हूं, बर्कले डीबी के विपरीत। एफएसएफएस अधिक लचीला है और चेकआउट की गति छोटी टीमों/परियोजनाओं के लिए ज्यादा चिंता नहीं है। आप compare कर सकते हैं और अपने लिए निर्णय ले सकते हैं।

नुस्खा के अन्य मानक भागों में Trac और लैन पर भंडार होस्ट करने के लिए न्यूनतम लिनक्स सर्वर शामिल है।

19

एसवीएन रिपॉजिटरीज सेट अप करना केवल यह समझने में मुश्किल हो सकता है कि आप उन्हें व्यवस्थित कैसे करते हैं। एसवीएन सेट करने से पहले, मैं वास्तव में ऑनलाइन Subversion manual आरटीएफएम करता हूं जो रिपॉजिटरीज़ के लिए संगठनात्मक तकनीकों पर चर्चा करता है और कुछ गॉर्च जिन्हें आपको पहले से सोचना चाहिए, अर्थात् यदि आप अपने दिमाग को बदलने का फैसला करते हैं तो आप अपनी रिपॉजिटरीज बनाने के बाद क्या नहीं कर सकते हैं। मैं सेटअप से पहले इस मैनुअल के माध्यम से एक पास का सुझाव देते हैं।

हमारे लिए, सलाहकार के रूप में, हम कस्टम और इन-हाउस सॉफ्टवेयर विकास के साथ-साथ एसवीएन के माध्यम से कुछ दस्तावेज़ प्रबंधन करते हैं। यह प्रत्येक ग्राहक के लिए एक भंडार बनाने के लिए हमारी रुचि में था और एक खुद के लिए। प्रत्येक भंडार के भीतर, हमने प्रत्येक प्रोजेक्ट (सॉफ़्टवेयर या अन्यथा) के लिए फ़ोल्डर बनाए। इसने हमें भंडार और ग्राहक द्वारा और यहां तक ​​कि एक भंडार के भीतर परियोजना द्वारा सुरक्षा पहुंच को विभाजित करने की अनुमति दी। गहरी जा रही है, प्रत्येक सॉफ्टवेयर प्रोजेक्ट के लिए हमने 'काम करने', 'टैग' और 'शाखाएं' फ़ोल्डर्स बनाए हैं। हम आमतौर पर मानक के लिए टैग के रूप में 'release_w.x.y.z' का उपयोग करके 'टैग' में रिलीज डालते हैं।

अपने मामले में, सिंचन में स्पॉक्स, स्क्रिप्ट और अन्य संबंधित दस्तावेज़ रखने के लिए, आप एक प्रोजेक्ट फ़ोल्डर बना सकते हैं, उसके बाद उस 'कोड' फ़ोल्डर के नीचे, उसके बाद 'कोड' और उसके आगे 'स्क्रिप्ट' इत्यादि। फिर जब आप रिलीज के लिए वर्किंग वर्जन को टैग करते हैं, तो आप इसे एक साथ टैगिंग समाप्त कर देते हैं।

\Repository 
    \ProjectX 
     \Working 
     \Code  
     \Scripts 
     \Notes  
     \Tags 
     \Branches 

गैर कोड का सवाल है, मैं परियोजना या दस्तावेज़ प्रकार (मैनुअल, नीतियों, आदि) द्वारा एक सीधे फ़ोल्डर लेआउट सुझाव है। आम तौर पर दस्तावेजों के साथ और आपकी कंपनी कैसे काम करती है, इस पर निर्भर करता है कि केवल संस्करण इतिहास/लॉग होना पर्याप्त है।

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

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

शुभकामनाएं!

+2

ध्यान दें कि शीर्ष-स्तरीय फ़ोल्डरों के लिए स्थापित मानक 'ट्रंक, शाखाएं, टैग' है। यदि आप 'ट्रंक' के बजाय 'कामकाजी' का उपयोग करते हैं, तो आप एसवीएन रेपो के साथ काम करने वाले कई टूल भ्रमित करेंगे। मैं दृढ़ता से ऐसा करने से हतोत्साहित करता हूं। – sleske

3

इस सवाल का मैं एक सहकर्मी जो सुझाव के साथ बात की पोस्ट करने के बाद मैं लेख पढ़ें:

http://www.codinghorror.com/blog/archives/000968.html

संक्षेप में, यह सलाह है कि प्रोग्रामर शाखाओं के प्रति अधिक जागरूक हो। इससे मुझे यह देखने में मदद मिली कि हमारे भंडार को व्यवस्थित करने का कोई सही तरीका नहीं है। हमारी टीम के लिए हमारे पास परीक्षण और विकास के लिए एक ट्रंक और दो लंबी अवधि की शाखाएं होंगी। इसके अलावा हम प्रत्येक कार्य के लिए पृथक शाखाएं करेंगे और कार्य शाखाओं में परिवर्तनों को विलय करेंगे क्योंकि हम कार्य और उत्पादन तक कार्य को बढ़ावा देते हैं।

0

मैं ट्रंक, टैग, शाखाओं के नीचे एक परियोजना डीआईआर के साथ मूल पैटर्न का पालन करने में विश्वास करता हूं। मैं इस

परियोजनाओं की तरह शीर्ष स्तर रखती है आमतौर पर सेटअप करने के लिए की तरह या व्यक्तिगत परियोजना के सभी मॉड्यूल विज्ञप्ति रिहाई टैग कि कई मॉड्यूल शामिल उपयोगकर्ता निजी उपयोगकर्ता शाखाओं व्यवस्थापक मेरी हुक स्क्रिप्ट रखती है, बैकअप स्क्रिप्ट आदि

धारण रखती है

रिलीज टैग उपयोगी हैं यदि आपके पास ऐसा उत्पाद है जो कई मॉड्यूल से बना है जो सभी एक विशिष्ट रिलीज के लिए एक अलग टैग हो सकते हैं (एक अंगूठी उन्हें बांधने के लिए और वह सब कुछ)। यह स्रोत एस्क्रो के लिए आसान बनाता है और घटनाओं के लिए संदर्भ के लिए क्या रिहाई 1 या 2

2

मैं ट्रंक/शाखाओं/टैग के आम सम्मेलनों का उपयोग कर के साथ सहमत बना हुआ है। इसके अलावा, मुझे लगता है कि आप How do you organize your version control repository? पर मेरे उत्तर की तरह कुछ ढूंढ रहे हैं।

संबंधित मुद्दे