2011-10-23 14 views
9

पर सीवीएस पसंद करने के कारण मुझे अभी एक ओपन सोर्स प्रोजेक्ट मिला जो अभी भी सीवीएस का उपयोग करता है। मुझे आश्चर्य हुआ कि आजकल एसवीएन या गिट पर सीवीएस पसंद करने के किसी भी कारण थे। (मुझे जवाब के रूप में माइग्रेट करने के लिए बहुत आलसी होने की गिनती नहीं है! ;-))एसवीएन या गिट

क्या सीवीएस में अन्य दो कमीएं हैं? कहें, $ ओएस या $ fancy_tool के लिए समर्थन?

"What are the advantages of using SVN over CVS?" में सीवीएस का उपयोग न करने के विस्तृत विवरण हैं। लेकिन मैं दूसरी तरफ से पूछना चाहता हूं। सीवीएस सब बुरा नहीं हो सकता है। या यह है?

उत्तर

21

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

गिट के विपरीत, आप आसानी से भंडार का एक सबसेट देख सकते हैं।

और सीवीएस प्रत्येक फ़ाइल में क्रमिक संस्करण संख्या (1.1, 1.2, 1.3, ...) असाइन करता है। गिट में, संस्करण संख्या 40-वर्ण हेक्साडेसिमल चेकसम हैं। एसवीएन में, संशोधन संख्या पूरे भंडार में अनुक्रमिक हैं; एक दिया गया नंबर पूरे भंडार पर लागू होता है।

और सीवीएस आपको इसे जांचते समय प्रत्येक फ़ाइल में संस्करण संख्याओं को विस्तारित करने देता है, जिससे यह पहचानना आसान हो जाता है कि फ़ाइल किस संस्करण से संबंधित है, इसके संदर्भ में फ़ाइल कौन सा संस्करण है।

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

अंत में;

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

अद्यतन: इस प्रश्न ने कुछ अस्पष्ट डाउनवॉट तैयार किए हैं। मैं केवल कारणों पर अनुमान लगा सकता हूं (और मैं कभी-कभी डाउनवोट के बारे में ज्यादा चिंता नहीं करता), लेकिन शायद कुछ पाठकों को लगता है कि मैं एसवीएन या गिट की तुलना में बेहतर प्रणाली के रूप में सीवीएस की वकालत कर रहा हूं। मैं नहीं हूँ; मैं केवल यह इंगित कर रहा हूं कि सीवीएस के कुछ काफी संकीर्ण परिस्थितियों में कुछ फायदे हो सकते हैं।

4

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

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

6

आपको यह समझना होगा कि सबवर्सन सीधे सीवीएस को प्रतिस्थापित करने के लिए लिखा गया था और मुद्दों के डेवलपर्स सीवीएस के साथ हैं। सबवर्सन लिखा गया था, ताकि सीवीएस उपयोगकर्ता आसानी से सीवीएस से सबवर्जन में संक्रमण कर सकें क्योंकि वे एक ही वर्कफ़्लो और कई समान अवधारणाओं का उपयोग करते हैं।

यह पूछने की तरह है कि एमएस-डॉस एक ऑपरेटिंग सिस्टम के रूप में विंडोज से बेहतर कैसे था। मैं कुछ फर्जी कारणों से आ सकता हूं ("अच्छा ... ... ओह ... एमएस-डॉस को कम स्मृति की आवश्यकता है।")। लेकिन, अंत में, विंडोज़ को एमएस-डॉस की छोटी कॉमिंग का ख्याल रखने के लिए लिखा गया था।

कुछ कारण जिनकी वजह सीवीएस सबवर्सन बेहतर है बस पकड़ नहीं है एक बार आप तर्क को समझने:

  • सीवीएस में, टैग और शाखाओं दो पूरी तरह से अलग अवधारणा थे। वास्तव में, टैग या शाखा के बीच बहुत अंतर नहीं था। सीवीएस ,v फ़ाइल में, शाखाओं और टैग दोनों फाइल की शुरुआत में विशेष संशोधन के लिए अलियाकृत थे। वास्तव में, आपने एक ही आदेश का उपयोग किया: cvs tag शाखा या टैग बनाने के लिए। यह उन कारणों में से एक है जब सबवर्जन ने दो अवधारणाओं के बीच भेद नहीं किया। हालांकि, शाखाओं और टैगों को समान रूप से इलाज करके, सबवर्जन ने आपको शाखा या टैग के इतिहास को ट्रैक करने का एक तरीका दिया था। इसे किसने बनाया और कब? यह किस संशोधन पर आधारित था? क्या यह बदल गया? सबवर्सन आपको अपने भंडार में सभी टैग या शाखाओं को देखने का एक आसान तरीका भी प्रदान करता है। सीवीएस में, आपको प्रत्येक फाइल के माध्यम से जाना होगा।
  • सीवीएस सबवर्जन से अधिक लचीला है क्योंकि सबवर्सन आपको पूरी निर्देशिका में काम करने के लिए कम या ज्यादा मजबूर करता है। सीवीएस में, आप यहां और वहां देख सकते हैं, अपने बदलाव कर सकते हैं, और फिर उन्हें एक साथ टैग कर सकते हैं। बेशक, यह वास्तव में काम करने के लिए एक बुरा, भयानक, भयानक, खतरनाक तरीका है। आम तौर पर ऐसा होता है कि आपको पुराने टैग के आधार पर निर्माण करने के लिए कहा जाता है, लेकिन फिर इन आधा दर्जन या तो फ़ाइल में परिवर्तन डालते हैं। फिर, एक नया टैग बनाएं। जब आप इन दिशानिर्देशों का पालन करने का प्रयास करते हैं तो मज़ा और उत्तेजना होती है। क्या आपने संशोधन 1.3.4.2.3.2.5.2 या 1.3.2.4.3.2.5.2 पर नया टैग किया था?
  • सीवीएस आपको स्पैस टैगिंग और ब्रांचिंग करने की अनुमति देता है। आपके पास बेस टैग हो सकता है, फिर उसके ऊपर अन्य टैग जोड़ें। बेशक, अधिकांश साइटों ने ऐसा इसलिए किया क्योंकि यह शाखा में घंटों लग सकता है या वास्तव में एक बड़ी सीवीएस भंडार टैग कर सकता है। माइक्रोसॉन्ड में सबवर्सन वही काम करता है।
  • सीवीएस मानक आरसीएस फ़ाइल प्रारूप का उपयोग करता है, ताकि आप अपने भंडार में समस्याओं को ठीक कर सकें। हालांकि, ज्यादातर समय, आप फिक्सिंग की तुलना में अधिक समस्याएं उत्पन्न करते हैं।

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

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

और एससीसीएस स्रोत भंडार का उपयोग न करने से कहीं ज्यादा बेहतर था।

सच्चाई यह है कि सीवीएस को सबवर्जन द्वारा प्रतिस्थापित किया गया है, क्योंकि एक दशक पहले सबवर्सन बाहर आया था, सीवीएस पर सभी कामों को रोक दिया गया है। मुझे यह भी नहीं लगता कि सीवीएस पर बग को और भी तय किया जा रहा है।

-1

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

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

+0

डाउनवॉटिंग क्योंकि, ल्यूक स्काईवाल्कर कहेंगे, "अद्भुत। इसका हर शब्द गलत था।" –

+0

वाह। प्रभावशाली। तुमने मुझे अपने तथ्यों और तर्क से चमकाया। जिसका मतलब है, आपने शून्य तथ्यों और तर्क लिखा है, लेकिन वैसे भी नीचे गिरा दिया गया है। क्या आपने निरंतर आधार पर काम के लिए सीवीएस और आरसीएस का उपयोग किया है? मैंने काम के लिए विस्तारित परियोजनाओं पर सभी 3: सीवीएस, आरसीएस, और उपवर्तन का उपयोग किया है। –

+0

हां, मैंने काम परियोजनाओं पर सीवीएस और एसवीएन दोनों का उपयोग किया है। आप अपनी त्रुटियों की एक सूची चाहते हैं? हेयर यू गो। "यह कहना गलत और भ्रामक है (गिट/उपवर्तन सीवी के साथ समस्याओं को ठीक करने के लिए डिज़ाइन किया गया था)।" गलत। एसवीएन को स्पष्ट रूप से एक बेहतर सीवीएस (यानी, सीवीएस के साथ समस्याओं को ठीक करने के लिए डिज़ाइन किया गया था, लेकिन ज्यादातर इसी तरह के काम में काम करते थे)। गिट, ओटीओएच, * एक अलग वर्कफ़्लो के लिए डिज़ाइन किया गया था। • "स्मृति से जाकर, सीवीएस उन लोगों के लिए अच्छा है जो अपने स्थानीय कोड भंडार में आरसीएस का उपयोग करना पसंद करते हैं।" गलत। सीवीएस आरसीएस फाइलों का डेटा भंडारण प्रारूप के रूप में उपयोग करता है, लेकिन आरसीएस की तरह काम नहीं करता है। –

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