सभी अलग-अलग प्रकार के संस्करण नियंत्रण के बीच क्या अंतर है?

एसओ पर कम से कम 10 लोगों द्वारा बताया जाने के बाद कि संस्करण नियंत्रण एक अच्छी बात थी, भले ही यह सिर्फ मेरे पास है, अब मेरे पास एक फॉलोअप प्रश्न है।

सभी अलग-अलग प्रकार के संस्करण नियंत्रण के बीच क्या अंतर है और क्या कोई मार्गदर्शिका है कि किसी को संस्करण नियंत्रण के बारे में पता है जो समझना बहुत आसान और आसान है?

0
ro fr bn
एक ही विषय पर एक और हालिया प्रश्न
जोड़ा लेखक Yaakov Ellis, स्रोत

13 उत्तर

हम संस्करण नियंत्रण के स्वर्ण युग में हैं, विकल्पों में से एक टन के साथ, जिनमें से सभी के पास उनके पेशेवर और विपक्ष हैं।

यहां वे सबसे अधिक उपयोग किए जाने वाले हैं:

  • svn - वर्तमान में सबसे लोकप्रिय ओपन सोर्स?
  • गिट - बहुत गर्म है क्योंकि लिनस ने इसे स्विच किया
  • Mercurial - कुछ स्मार्ट लोग जिन्हें मैं जानता हूं उसके द्वारा कसम खाता हूं
  • सीवी - सब लोग
  • से स्विच कर रहे हैं
  • perforce - imho, सर्वोत्तम सुविधाएं, लेकिन यह खुला स्रोत नहीं है। हालांकि, दो उपयोगकर्ता लाइसेंस मुफ्त है।
  • विजुअल सोर्सएफ़ - मैं माइक्रोसॉफ्ट की दुनिया में ज्यादा नहीं हूं, इसलिए मुझे इस बारे में कोई जानकारी नहीं है, इसके अलावा लोगों को इसके अलावा इस बात पर कोई जानकारी नहीं है क्योंकि वे माइक्रोसॉफ्ट से सब कुछ पर फटकारते हैं।
  • एससीसी - ऐतिहासिक हित के लिए हम इसका उल्लेख करते हैं, उपरोक्त में से कई लोगों के महान दादाजी
  • आरसीएस - और उपरोक्त में से कई के दादाजी

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

सीवी, एससीसी, आरसीएस पर विचार न करें, वे प्राचीन हैं।

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

0
जोड़ा
@maksimov, मैं एक ClearCase दुकान में काम करता था। मैं सिर्फ यह दिखाता हूं कि यह कभी नहीं हुआ और अगर कोई कहता है कि मैंने किया तो हिंसक रूप से इनकार कर दिया!
जोड़ा लेखक Mark Harrison, स्रोत
दुर्भाग्य से किसी के पेशेवर करियर के दौरान क्लीयरकेस और सीए एससीएम में आने के लिए यह लगभग अनिवार्य है। हालांकि सामान्य मनुष्य इन्हें अपनी परियोजनाओं के लिए कभी नहीं चुनेंगे।
जोड़ा लेखक maksimov, स्रोत

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

Centralized VCS are based on using a central server, where everyone "checks out" a project, works on it, and "commits" their changes back to the server for anybody else to use. The major Centralized VCS are CVS and SVN. Both have been heavily criticized because "merging" "branches" is extremely painful with them. [TODO: write explanation on what branches are and why merging is hard with CVS & SVN]

वितरित वीसीएस हर किसी के पास अपना स्वयं का सर्वर है, जहां आप अन्य लोगों से परिवर्तन खींच सकते हैं और सर्वर में "पुश" परिवर्तन कर सकते हैं। सबसे आम वितरित वीसीएस गिट और मर्कुरियल हैं। [TODO: वितरित वीसीएस पर और लिखें]

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

0
जोड़ा

मैं इसके साथ शुरू करूंगा:

फिर एक बार जब आप इसे पढ़ लेंगे, तो SVN डाउनलोड करें और इंस्टॉल करें, TortoiseSVN और पुस्तक और शुरू करें।

0
जोड़ा

यदि आप विंडोज वातावरण में स्वयं से काम कर रहे हैं, तो SourceGear's Vault के लिए एकल उपयोगकर्ता लाइसेंस है मुक्त।

0
जोड़ा

एरिक सिंक में एक स्रोत नियंत्रण का अच्छा अवलोकन है। कुछ मौजूदा प्रश्न यहां SO पर।

0
जोड़ा

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

Mercurial Documentation Unofficial Manual

0
जोड़ा
ओपनजेडीके परियोजना ने भी स्विच किया है और पाइथन भाषा Mercurial में स्विच करने की प्रक्रिया में है।
जोड़ा लेखक Martin Geisler, स्रोत

सरल जवाब है, क्या आपको पूर्ववत बटन पसंद हैं? जवाब निश्चित रूप से हां है, क्योंकि हम मनुष्य हर समय गलतियां करते हैं।

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

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

I personally (though it could be called overkill) use a free Single user license version of Source Gear Fortress (which is their Vault source control product with bug tracking features). I find the UI really simple to use, it supports both the checkout > edit > checkin model and the edit > merge > commit model. It can be a little tricky to set up though, requiring you to run a local copy of ISS and SQL server. You might want to try a smaller program, like those recommended by other answers here. See what you like and what you can afford.

0
जोड़ा

उत्तर एक और प्रश्न यहां भी सबसे महत्वपूर्ण रूप से लागू होता है

जॉन वर्क्स ने कहा:
  संस्करण नियंत्रण के बारे में सबसे महत्वपूर्ण बात यह है:

     

बस इसे उपयोग करना शुरू करें

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

0
जोड़ा

यह SO प्रश्न भी देखें:

0
जोड़ा

मार्क ने कहा:

गिट - बहुत गर्म है क्योंकि लिनस ने इसे स्विच किया

मैं बस यह इंगित करना चाहता हूं कि लिनस उस पर स्विच नहीं किया था, लिनस लिखा

0
जोड़ा
ठीक है, वह बिटकिपर का उपयोग करने और गिट का उपयोग करने के लिए स्विच करने से स्विच किया।
जोड़ा लेखक Craig McQueen, स्रोत

सभी को बस संस्करण नियंत्रण का उपयोग शुरू करने के लिए:

कृपया प्रचार के कारण गिट (या एचजी या बीजीआर) का उपयोग न करें

गिट (या एचजी या बीजीआर) का उपयोग करें क्योंकि वे एसवीएन की तुलना में स्रोत कोड के प्रबंधन के लिए बेहतर टूल हैं।

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

लोगों के लिए संस्करण नियंत्रण के साथ शुरू करना:

  • एसवीएन डाउनलोड करके प्रारंभ करें
  • जानें क्यों आपको संस्करण नियंत्रण की आवश्यकता है
  • जानें कि प्रतिबद्ध कैसे करें, चेकआउट, शाखा
  • जानें कि एसवीएन में विलय क्यों ऐसा दर्द है

फिर एक डीवीसीएस पर स्विच करें और जानें:

  • How to clone/branch/commit
  • How easy it is to merge your branches back (go branch crazy!)
  • How easy it is to rewrite commit history and keep your branches
    up to date with the main line (git rebase -i, )
  • How to publish your changes so others can benefit

tldr; भीड़:

एसवीएन के साथ शुरू करें और मूल बातें सीखें, फिर एक डीवीसीएस के लिए स्नातक की उपाधि प्राप्त करें।

0
जोड़ा
हाय @ विल और @ एसपीआईके, मैं निश्चित रूप से यह नहीं कह सकता कि वितरित संस्करण नियंत्रण केंद्रीकृत से नए उपयोगकर्ता के लिए सीखना मुश्किल है। हालांकि, मैं एसवीएन से बाज़ार में अपने संक्रमण के साथ स्रोत सेफ से सीवीएस तक और वहां से एसवीएन तक अपने संक्रमण की तुलना कर सकता हूं। जब आप एक केंद्रीकृत उपकरण से दूसरे में जाते हैं, तो उनके पास अधिकतर एक अलग (आशावादी सुधार) इंटरफ़ेस के साथ समान सुविधाएं होती हैं। जब आप एक वितरित उपकरण में जाते हैं, तो भंडार का उपयोग कैसे किया जाता है और आपका कार्य प्रवाह कैसा दिखता है, इसमें एक मूलभूत बदलाव होता है। मैंने पाया कि मेरे सिर को चारों ओर लपेटना मुश्किल है।
जोड़ा लेखक Don Kirkby, स्रोत
@Will रॉबर्टसन: मैं सहमत हूं, मैंने सीवीसीएस की तुलना में डीवीसीएस को और अधिक कठिन नहीं पाया। इसके विपरीत, ग्रोक करना आसान हो गया है। जैसे गिट में एक रेपो सेट करना बहुत आसान है, जबकि एसवीएन में कन्वेंशन ट्रंक / शाखाओं / टैग्स का पालन करने के लिए एक बहुत ही कदम प्रक्रिया है, भले ही यह आपके कंप्यूटर पर स्थानीय रूप से हो।
जोड़ा लेखक Spoike, स्रोत
मुझे यह पूरा नहीं मिला "DVCS कठिन है" meme। अपने मूल अवतारों में, एचजी और बीजीआर कम से कम svn के रूप में उपयोग करने में आसान हैं; असल में, मुझे लगता है कि यह किसी भी तरह से एक svn सर्वर स्थापित करने के बजाय easy चलाने के लिए git init चलाने के लिए है।
जोड़ा लेखक Will Robertson, स्रोत

बस स्रोत नियंत्रण का उपयोग शुरू करें, इससे कोई फर्क नहीं पड़ता कि आप किस प्रकार का उपयोग करते हैं। आप जो भी उपयोग करते हैं इससे कोई फर्क नहीं पड़ता; इसका उपयोग यह महत्वपूर्ण है

0
जोड़ा

हर किसी की तरह, एससी वास्तव में आपकी जरूरतों, आपके बजट, पर्यावरण, आदि पर निर्भर है।

इसकी जड़ पर, स्रोत नियंत्रण को आपके सभी कोड का केंद्रीय भंडार प्रदान करने के लिए डिज़ाइन किया गया है, और ट्रैक करें कि किसने इसे किया था। एक पूरा इतिहास होना चाहिए, और आप उन उत्पादों को प्राप्त कर सकते हैं जो पूर्ण चेंजलॉग, ऑडिटिंग, एक्सेस कंट्रोल, और ऑन ...

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

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

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

0
जोड़ा