2008-08-04 14 views
54

मेरी कंपनी स्रोत नियंत्रण के लिए हमारे डी-फैक्टो मानक के रूप में सीवीएस का उपयोग कर रही है। हालांकि, मैंने सुना है कि बहुत से लोग कहते हैं कि एसवीएन बेहतर है।सीवीएस पर एसवीएन का उपयोग करने के क्या फायदे हैं?

मुझे पता है कि एसवीएन नया है, लेकिन इसके अलावा, मैं इसके लाभों से अपरिचित हूं।

जो मैं खोज रहा हूं वह दो प्रणालियों की एक अच्छी, संक्षिप्त तुलना है, जो जावा/ग्रहण विकास पर्यावरण में प्रत्येक के किसी भी फायदे या नुकसान को ध्यान में रखते हुए है।

उत्तर

52

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

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

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

संपादित करें 2015: गंभीरता से, यह उत्तर अब 7 साल का है। एसवीएन भूल जाओ, हर किसी की तरह गिट का उपयोग करें!

+1

मुझे गिट बनाम सबवर्सन और गिट बनाम मर्कुरियल –

18

कई तुलना में से एक:

http://wiki.scummvm.org/index.php/CVS_vs_SVN

अब यह है कि परियोजना के लिए बहुत विशिष्ट है, लेकिन सामान्य रूप में सामान apllies का एक बहुत।

प्रो सबवर्सन: संस्करणीकृत renames/चाल के लिए

  • समर्थन (सीवीएस के साथ असंभव): Fingolfin, Ender
  • निर्देशिका का समर्थन करता है मूल रूप से: यह उन्हें हटाने के लिए संभव है, और वे संस्करणीकृत रहे हैं: Fingolfin, Ender
  • फ़ाइल गुण संस्करणित हैं; कोई और अधिक "निष्पादन बिट" नरक: Fingolfin
  • कुल मिलाकर संशोधन संख्या संस्करण और प्रतिगमन परीक्षण बहुत आसान निर्माण करता है: Ender, Fingolfin
  • परमाणु करता है: Fingolfin
  • सहज (निर्देशिका-आधारित) शाखाओं और टैगिंग: Fingolfin
  • आसान हुक लिपियों (पूर्व/पोस्ट के लिए प्रतिबद्ध, आदि): SumthinWicked (मैं इसे Doxygen के लिए प्रतिबद्ध के बाद का उपयोग करें)
  • विरोध हुआ फ़ाइलों के करने से आकस्मिक रोकता: नमकीन-घोड़ा, Fingolfin
  • समर्थन कस्टम के लिए 'diff' कमांड: Fingolfin
  • ऑफलाइन डिफ, और वे तुरंत कर रहे हैं: सेव
+1

"fingolfin" क्या है? उस शब्द को गुगल करने से यह केवल अधिक भ्रमित हो जाता है – DuKes0mE

+1

फिंगोल्फिन और एन्डर सिर्फ उस फोरम के लोगों के नाम हैं: 'प्रत्येक के पीछे "तर्क" उन लोगों की एक सूची है जो इस बात से सहमत हैं कि यह विशेष तर्क मान्य है। ' – hinneLinks

7

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

14

SVN सीवीएस से अधिक 3 मुख्य फायदे हैं

  • यह तेजी से है
  • बाइनरी फ़ाइलें
  • के संस्करण का समर्थन करता है और (सब कुछ या कुछ)
0

आप एक नज़र डालनी चाहिए कहते हैं व्यवहार के लिए प्रतिबद्ध एसवीएन के बजाय Git पर। यह एक डीवीसीएस है जो तेज और तेज है। यह एसवीएन के रूप में उपयोगकर्ता के अनुकूल नहीं है, लेकिन यह उस संबंध में सुधार कर रहा है, और यह नहीं है जो सीखना मुश्किल है।

+0

के लिए एक ही जवाब चाहिए, आप, साहब, भाग्य के लिए एक पदक के लायक हैं। – altinturk

1

Btw: CVSNT एटॉमिक कमिट

2

का समर्थन करता है मैं दूसरे Git की Eridius 'सुझाव, लेकिन मैं अन्य डीआरसी (वितरित संशोधन नियंत्रण प्रणाली) इस तरह के Mercurial और bazaar के रूप में करने के लिए इसे विस्तार होता जाएगा।

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

दूसरी ओर, वर्तमान में सीवीएस आपके लिए नहीं करता है? आपके शुरुआती प्रश्न से, आपके पास वास्तव में कोई नहीं है, "सीवीएस इस पर बेकार है, मैं इसके बजाय क्या उपयोग कर सकता हूं?"

आपको लाभों के विरुद्ध किसी संभावित प्रवासन की लागत का भार उठाना होगा। एक मौजूदा परियोजना के लिए, मुझे लगता है कि उचित ठहराना मुश्किल होगा।

4

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

2

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

  • विलय और शाखाओं में बहुत अलग हैं, और यदि आप शाखा है और अक्सर विलय, जब तक आप है SVN 1.5 अपने सर्वर पर चल रहा है पता करने के लिए जब आप branched है (इस कछुआ SVN संवाद में बहुत स्पष्ट नहीं है)। माइकल का कहना है कि शाखाकरण और विलय सहज है, मैं तर्क दूंगा कि 10 वर्षों तक सीवीएस का उपयोग करने के बाद, यह नहीं है।
  • यदि आप लिनक्स पर एसवीएन सर्वर चला रहे हैं, तो एसएएन 1.5 में डिफ़ॉल्ट रूप से स्थापित होने के लिए एसएएन 1.5 में स्थानांतरित करना मुश्किल हो सकता है।
  • विलय विवाद टोर्टोइस सीवीएस में टोर्टोइज एसवीएन में लगभग आसान या स्पष्ट (कम से कम मेरे और मेरे सहकर्मियों) के रूप में नहीं है क्योंकि यह टोर्टोइजसीवीएस में है। तीन फलक दृष्टिकोण कुछ उपयोग करने के लिए लेता है और WinMerge (मेरा पसंदीदा विलय उपकरण) तीन फलक विलय नहीं करता है।
  • सावधान रहें: मैंने पढ़ा है कि ऑनलाइन ट्यूटोरियल और पत्रिका लेखों में से कई स्पष्ट रूप से शाखा और विलय नहीं करते हैं, आपको https://svn.yoursvnserver.com/repos/YourProject/Trunk और https://svn.yoursvnserver.com/repos/YourProject/Branches/BranchX पर शाखाओं को अपना मुख्य भंडार सेट करना चाहिए। यदि आप गलत जगह पर अपना प्रतिनिधि शुरू करते हैं, तो आप साफ कर सकते हैं, लेकिन इससे भ्रम पैदा होता है।
0

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

0

ठीक है, कुछ चीजें जो मुझे लगता है वह svn भयानक बनाता है।

  1. SVN-Altassian क्रूसिबल संयोजन समीक्षा और गुणवत्ता जाँच संघर्ष की
  2. बेहतर प्रबंधन के एक कहीं बेहतर तरीका है और विलीन हो जाती है
  3. यह स्पष्ट रूप से तेजी से checkouts ले, प्रतिबद्ध प्रदर्शन करने के लिए है, आदि
  4. परमाणु प्रतिबद्धता समस्या - यह संभव है कि सीवीएस में एक साथ मिलकर 2 लोग एक दूसरे से संघर्ष कर सकते हैं, कुछ डेटा खो सकते हैं और अपने कोड बेस को असंगत स्थिति में डाल सकते हैं

माइग्रा cvs2svn का उपयोग कर कुछ घंटों में टयन आसानी से किया जा सकता है।

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