संस्करण नियंत्रण प्रणालियों के क्या फायदे हैं जो प्रत्येक फ़ाइल को अलग-अलग संस्करण देते हैं?


15

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

कुछ "प्रति-फ़ाइल" संस्करण नियंत्रण प्रणाली:

  • सीवीएस
  • ClearCase
  • विजुअल सोर्ससेफ़

कुछ "पूरे-भंडार" संस्करण नियंत्रण प्रणाली:

  • SVN
  • Git
  • अस्थिर

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

इन प्रति-फ़ाइल संस्करण नियंत्रण प्रणालियों के क्या लाभ हैं ? "संपूर्ण-रिपॉजिटरी" संस्करण नियंत्रण प्रणालियों में क्या समस्याएं हैं जो प्रति-फ़ाइल संस्करण नियंत्रण प्रणाली नहीं हैं?


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

माफी अगर यह सवाल बहस के रूप में आता है। यह कुछ हाल की हताशा का एक उत्पाद है।
माइक डेनियल

1
@ माइक डेनियल: यह (कम से कम मेरे लिए) नहीं है जैसा कि आप स्पष्ट रूप से फायदे के लिए पूछते हैं।
blubb

ये दो दृष्टिकोण सिर्फ अलग-अलग परंपराएं हैं। एक दूसरे के पक्ष में कोई भी तर्क केवल दूसरे पक्ष के पक्षकारों से प्रतिवाद पैदा करता है। उदाहरण के लिए, यदि आप क्लियरकेस में एक "संपूर्ण-प्रतिनिधि" व्यवहार चाहते हैं, तो आप अपने कॉन्फ़िगरेशन युक्ति को तारीख तक कस्टम कर सकते हैं।
मौविसील

एसवीएन के पास प्रति फ़ाइल एक संस्करण है, या क्या वह पिछले संस्करण में भी बदल गया है?
Klaim

जवाबों:


12

मेरे अनुभव में, कोई भी नहीं हैं: "संपूर्ण-रिपॉजिटरी" वीसीएस सख्ती से "प्रति-फ़ाइल" वीसीएस पर हावी है।


3

जब आप एक ही रिपॉजिटरी से उत्पाद लाइनों (कई सॉफ्टवेयर उत्पादों) का निर्माण करते हैं तो प्रति फ़ाइल का एक फायदा होता है।

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

और यह एक यादृच्छिक उदाहरण नहीं है जिसे मैंने पतली हवा से निकाला था।

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

तो यह कुछ समय मदद करता है।

अजीब तरह से: जहां मैं अब काम करता हूं, हम प्रत्येक ग्राहक को एक अलग वितरण योग्य जहाज भी भेजते हैं .... (और ऐसा कुछ नहीं है जो मैंने तय किया था, अगर आप सोच रहे थे।)

मुझे संदेह है कि यह सिक्योर-रैप या वेब ऐप्स की तुलना में रक्षा / एयरोस्पेस स्पेस में बहुत अधिक सामान्य है।


3
लेकिन पूरे फाइल रिपॉजिटरी की एक शाखा भी उसी जरूरतों को पूरा करेगी। उदाहरण के लिए, bzr में, शाखाएं तब तक मुख्य रेखा से पूरी तरह से स्वतंत्र होती हैं जब तक कि आपका मर्ज (या एक भंडार साझा नहीं करता)।
edA-qa मोर्ट-ओर-वाई

1
मैं एक ऐसी स्थिति के बारे में नहीं सोच सकता जहाँ एक 'संपूर्ण-रिपॉजिटरी' प्रणाली में शाखा बेहतर राज्य के लिए बाहरी राज्य से वीसीएस पर निर्भर होने की अपेक्षा व्यक्त नहीं करेगी, जो यह निर्धारित करने के लिए कि "प्रति-फ़ाइल" वीसीएस में किन फ़ाइलों का उपयोग करना है। यूनी के बाद मेरी पहली नौकरी आरसीएस का उपयोग की गई, परियोजना का संस्करण करने के लिए लिपियों का एक गुच्छा और संस्करण लिपियों के लिए एक शीर्ष स्तर की स्क्रिप्ट - एक निरपेक्ष दुःस्वप्न, और हाँ, यह एक सैन्य परियोजना के लिए भी था। * 8 ')
मार्क बूथ

@ मर्क बूथ, ग्राहक को पता था कि उन्हें कौन सी फिक्स चाहिए, इसके लिए फाइलें बदल गईं। तो भौतिक विन्यास ऑडिट संस्करण नियंत्रण संख्या
टिम विस्क्रॉफ्ट

मैं जो कह रहा हूं वह यह है कि एक संस्करण + एक ऑडिटेड पैच को विभिन्न स्थानों, वीसीएस और ऑडिटरों में अलग-अलग जानकारी की आवश्यकता होती है । A संपूर्ण-रिपॉजिटरी ’प्रणाली में एक शाखा के साथ, उन दो राज्यों को अलग-अलग संस्थाओं के रूप में दर्ज किया जाता है। अब वही सूचना VCS और ऑडिट सिस्टम के बीच डुप्लिकेट है, और हमेशा मेल खाना चाहिए। gitलेखक और कमिटर के बीच अंतर भी कर सकते हैं, इसलिए आप एक 'ऑडिटेड' रिपॉजिटरी रख सकते हैं, जहाँ आप जानते हैं कि दोनों ने पैच (लेखक) को किसने बनाया है और किसने इसका ऑडिट किया है। हमें एक अनुकरणीय स्थिति प्रदान करें और मैं अपने -1 को उलट दूंगा।
मार्क जूथ

@ मार्क बूथ क्या पैच? उन्हें पता था कि उनका सॉफ्टवेयर ए 1.01 बी 1.05 डी 1.55 ई 1.44 एफ 1.01 फाइलों का यह सेट है और जिस संस्करण को उन्होंने स्वीकार किया है उसके लिए एसवीडी में फाइल-दर-फ़ाइल परिवर्तन की जानकारी है जैसे ई ने दोष 1104, पुराने संस्करण 1.43, नए संस्करण 1.44 को ठीक किया। । अगर हम F को संस्करण 1.01 से बदलेंगे तो स्वर्ग हमारी मदद करेगा। स्थिति अभी और अधिक जटिल थी क्योंकि वास्तविक कीड़े थे जो तय हो गए थे, वे चाहते थे कि वे बदलाव न करें। ये लोग बदलाव के न्यूनतम सेट चाहते थे, विकास के एक वर्ष से केवल कुछ विशेषताओं को चुना गया। पोस्ट-हॉक बगफिक्स चयन।
टिम विलिसक्रॉफ्ट

3

प्रति फ़ाइल संस्करण के लिए कोई लाभ नहीं है।

नुकसान दूसरे हाथ पर, भरपूर मात्रा में और प्रकट कर रहे हैं।


0

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


0

संबंधित फ़ाइल होने पर प्रति-फ़ाइल दृष्टिकोण पर कोई लाभ नहीं है। जो एक विकास सेटिंग्स में सबसे आम मामला है।

कुछ अजीब मामलों में - / आदि या। Unix में आपके होम डायरेक्टरी की फाइलें केवल एक ही है जो मेरे पास नियमित रूप से है - आप (ज्यादातर) असंबंधित फाइलें संभाल रहे हैं। और फिर एक ऐसी प्रणाली का होना जो असंबंधित परिवर्तनों को बनाए रखने पर जोर देता है, एक उपद्रव हो सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.