visual studio - उपversण भंडार बनाने के लिए सबसे अच्छा अभ्यास?




visual-studio svn (6)

आम तौर पर, आप किसी भी मामले में एक अलग भंडार का उपयोग करना चाहते हैं जहां आप विभिन्न एक्सेस अनुमतियों की अपेक्षा कर रहे हैं (यानी कुछ डेवलपर्स को एक प्रोजेक्ट तक पहुंच प्राप्त करनी चाहिए, लेकिन कोई अन्य नहीं, या एक प्रोजेक्ट में सार्वजनिक रीड-ओनली अज्ञात इंटरफेस है लेकिन दूसरा ' टी)।

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

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

हमारी टीम (5-10 डेवलपर्स) हमारी .NET (विजुअल स्टूडियो) परियोजनाओं / समाधान (विजुअल एसवीएन सर्वर, टोर्टोइज एसवीएन / विजुअल एसवीएन) के लिए सबवर्जन को अपनाने की योजना बना रही है।

एक नया भंडार वृक्ष व्यवस्थित करने का सबसे अच्छा तरीका क्या है? क्या एक बड़े भंडार का उपयोग करना ठीक है या क्या हर समाधान / उत्पाद लाइन आदि के लिए अलग-अलग भंडार बनाना बेहतर है?

हमारी परियोजनाओं को इस तरह वर्गीकृत किया जा सकता है (उदाहरण):

  • मुख्य उत्पाद लाइन
    • मुख्य वेब ऐप
      • पुस्तकालय 1
      • पुस्तकालय 2
      • ...
    • विंडोज क्लाइंट
    • एक और विंडोज क्लाइंट
    • विंडोज़ सेवा
  • उपकरण
    • उपकरण ए
    • टूल बी
  • उत्पाद लाइन 2
    • सॉफ्टवेयर 1
    • सॉफ्टवेयर 2
  • उत्पाद लाइन 3
    • ऐप 1
    • ऐप 2

नियमित रूप से एक्सेस की गई सामग्री (कोड, स्क्रिप्ट) को 'लिखने-एक बार और बैकअप के लिए प्रतिबद्ध' सामग्री से अलग रखने का प्रयास करें। कोड की कुछ पंक्तियों को बदलने के लिए हजारों जेपीईएस को चेकआउट / अपडेट करना बहुत जल्दी हो जाता है।


मैं एक भंडार और कई परियोजनाओं का उपयोग नीचे कर रहा हूं:

Projects
   Project Name
      trunk
      branches
      tags

मेरी एकमात्र चिंता बैकअप और बहाली है। एसवीएन बैकअप भंडार स्तर पर किया जाता है, इसलिए पुनर्स्थापन केवल एक की बजाय सभी परियोजनाओं को पुनर्स्थापित करेगा।

Jirong


हम एक बड़े भंडार का उपयोग करते हैं, और सब कुछ सबफ़ोल्डर (/ project1, / project2 आदि) में संरचित है और यह ठीक काम करता प्रतीत होता है।

अपाचे प्रोजेक्ट में एक विशाल svn भंडार है और ऐसा लगता है कि उनके लिए ठीक है! :)

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


हमारे पास प्रत्येक परियोजना के लिए अलग-अलग प्रतिनिधि हैं; लेकिन मुख्य कारण एक्सेस कारणों के लिए है और यदि ग्राहक अपने स्रोत की प्रतिलिपि चाहता है तो हम इसे इतिहास के साथ बहुत अधिक परेशानी के बिना दे सकते हैं। यदि आप कॉन्फ़िगरेशन फ़ाइलों को कॉन्फ़िगर करते हैं तो यह एक सार्वभौमिक कॉन्फ़िगरेशन फ़ाइल नहीं है जो आपकी सभी परियोजनाओं के लिए काम करेगी। हम इसे इस तरह करते हैं:

[general]
anon-access = none
auth-access = write
password-db = ../../conf/passwd
authz-db = ../../conf/authz

authz:

[groups]
AOS = nathan,mark

[AOS:/]
@AOS = rw
frew = rw

और फिर निश्चित रूप से passwd:

[users]
frew = password
nathan = awesome
mark = station

  • एसवीएन प्रबंधन दृष्टिकोण मैं 1 भंडार पसंद करते हैं।
  • प्रोग्रामर दृष्टिकोण मैं 1 भंडार पसंद करते हैं।
  • सर्वर प्रशासक मैं 1 repostitory पसंद करते हैं।
  • सुरक्षा दृष्टिकोण यह है कि आप अपने सभी अंडों को एक टोकरी में न रखें।

आपकी रिपोजिटरी संरचना आपके व्यापार के लिए कुछ हद तक अद्वितीय होगी, और यह उत्पाद है। हम एक भंडार में रखते हैं। हमारी संरचना कुछ हद तक इस तरह है।

  • /
    • परियोजनाओं
      • परियोजना का नाम
        • सूँ ढ
        • शाखाओं
        • टैग
    • प्रलेखन
      • प्रोजेक्ट 1
    • साझा पुस्तकालयों
      • सुपर स्ट्रिंग क्लास
    • छोटी उपयोगिताएं
      • विम एन्हांसमेंट एक्स




visualsvn