2009-02-12 11 views
16

हम ClearCase से Subversion में जाने पर विचार कर रहे हैं। परियोजना थोड़ी देर के लिए रही है (7 साल) और तीन "प्रमुख" संस्करण (शाखाएं) हैं जिन्हें हम सक्रिय रूप से समर्थन देते हैं, साथ ही पुरानी रिलीज में कुछ प्रासंगिक सुधार भी करते हैं। परियोजना काफी बड़ी है - जावा कोड की लगभग 2 मिलीयन लाइनें।ClearCase से SVN में माइग्रेट करते समय सबसे अच्छी रणनीति क्या होती है?

अगर कोई ऐसा व्यक्ति है जिसने समान प्रवासन किया है तो मैं उत्सुक हूं।

  • क्या एसवीएन ऐसी बड़ी परियोजना को संभालने में सक्षम होगा?
  • क्या यह सभी ऐतिहासिक संस्करणों/शाखाओं को माइग्रेट करने के लिए समझ में आता है? क्या उपकरण चुनिंदा रूप से ऐसा कर सकते हैं?
  • इस तरह के एक परियोजना के लिए माइग्रेशन प्रक्रिया कब तक ले जाएगी और काम करने का प्रभावी तरीका क्या है, तो माइग्रेशन प्रगति पर है?
+0

मैं दूसरा प्रश्न पूछता हूं। ;-) –

+0

संक्षिप्त प्रश्न। विंडोज? – Avram

उत्तर

9

इस प्रकार की कई माइग्रेशन बना होने के लिए, मुझे लगता है कि लोगों का तर्क था:

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

  • आपको लगता है के बारे में पुनर्गठन माइग्रेशन के दौरान की जरूरत है? आप क्या आयात करते हैं, क्या आप छोड़ देते हैं, और आप SVN सामग्री चाहते हैं प्रतिबिंबित बिल्कुल फ़ाइलों की संरचना में संग्रहीत के रूप में ClearCase वीओबी? कभी-कभी, ऐसे माइग्रेशन उन फ़ाइलों में से कुछ को पुनर्विचार करने का अवसर होते हैं (आमतौर पर कुछ निर्देशिकाओं के लिए सरल नामकरण नियमों के माध्यम से)।

  • प्रवास, ClearCase 2 SVN तरह से तेज है के बाद से SVN भंडार केंद्रित है और फ़ाइलों का एक सेट के लिए प्रतिबद्ध है, जबकि ClearCase फ़ाइल केंद्रित है और फ़ाइल-दर-फ़ाइल करता है (ज्यादा sloooower)

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

1
  1. हां, सबवर्जन बहुत बड़ी परियोजनाओं को संभाल सकता है। उदाहरण के लिए, सभी Apache projects एक एकल सबवर्जन रेपॉजिटरी में हैं जो उपप्रोजेक्ट्स सरल सबफ़ोल्डर
  2. यदि सभी इतिहास को परिवर्तित करना समझ में आता है, तो आपको स्वयं को निर्णय लेना होगा। लेकिन बहुत सारे उपकरण उपलब्ध हैं। एक अच्छा ब्लॉग पोस्ट here पाया जा सकता है।
  3. मुझे नहीं पता कि इस तरह के रूपांतरण में कितना समय लगता है। लेकिन आप पहले एक छोटे से सबसेट के साथ कोशिश कर सकते हैं और समय को माप सकते हैं।
+0

आपके विचार के विपरीत, अपाचे बहुत बड़ी परियोजना नहीं है, यह एक बड़ी परियोजना भी नहीं है। इसमें केवल 30 योगदानकर्ता हैं या नहीं। यह एक मध्यम आकार की परियोजना है। एसवीएन बड़ी परियोजनाओं को संभालने में वास्तव में सक्षम नहीं है। कोड बेस का आकार वास्तव में एक निर्णायक कारक नहीं है जितना लोगों को सहयोग करने की आवश्यकता है और बातचीत, शाखाकरण और विलय की मात्रा। –

+0

प्रोजेक्ट आकार के बारे में ऐसी गलत धारणाएं करने से पहले कृपया अपाचे रिपोजिटरी (http://svn.apache.org/repos/asf/) पर एक नज़र डालें। रिपॉजिटरी न केवल अपाचे वेबसर्वर प्रोजेक्ट को होस्ट करता है बल्कि * सभी * अपाचे परियोजनाओं को सैकड़ों कमेटरों के साथ होस्ट करता है। – Stefan

+0

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

5

पहले कुछ संसाधनों:

  1. Clearvision CC2SVN Tool
  2. SVN Importer by Polarion
  3. Article and resources on CollabNet

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

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

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

टाइमफ्रेम बड़े पैमाने पर उपयोग किए गए टूल पर निर्भर करता है। आपके जैसे प्रमुख प्रोजेक्ट के लिए यह सप्ताह भी हो सकता है। ClearCase डेटाबेस के कुछ अजीब कारणों के लिए पढ़ने के संचालन पर भी लॉकिंग के बहुत सारे कारण हैं और माइग्रेशन जैसे बड़े पैमाने पर पहुंच में बहुत सारी समस्याएं पैदा करने वाली सभी चीजों की एक केंद्रीय तालिका होती है। पहली बार जब मैं उत्पाद पर अपना टूल कुछ हद तक बड़ा करता हूं, तो हमने अनुमान लगाया है कि यह 3 साल तक चलता रहेगा, बहुत अनुकूलन, समांतरता और वृद्धिशील माइग्रेशन के बाद यह लगभग एक सप्ताह तक काट जाएगा। लेकिन उम्मीद है कि उपकरण कितनी अच्छी तरह से किया जाता है, इस पर निर्भर करता है कि उस समय में बहुत भिन्नता हो सकती है। यद्यपि आप एसवीएन में माइग्रेट करते हैं और आप साफ़कैस से इतिहास और मेटाडेटा को अनदेखा कर देंगे, इसलिए आपका माइग्रेशन बहुत तेज होना चाहिए।

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

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

1

एक और विकल्प Migrate2SVN है। डेवलपर (क्लीयरविजन) ने अभी v2.0 जारी किया है और इसमें पोलरियन सॉफ़्टवेयर और ऊपर वर्णित अन्य विधियों पर कई सुधार शामिल हैं।

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