पोर्टेबल भंडारण पर आधारित संस्करण नियंत्रण?


9

मैं एक साझा सर्वर या दोनों के बीच नेटवर्क कनेक्शन के उपयोग के बिना दो मशीनों पर व्यक्तिगत परियोजनाएं विकसित करता हूं।

क्या कोई सामान्य संस्करण नियंत्रण प्रणाली साझा भंडार के रूप में पोर्टेबल भंडारण (जैसे USB फ्लैश डिवाइस) के उपयोग का विश्वसनीय समर्थन करती है?


आप पोर्टेबल स्टोरेज का उपयोग क्यों करना चाहते हैं?
बर्नार्ड

दो मशीनों के बीच कोड को उसी तरह से स्थानांतरित करने के लिए जो एक सामान्य संस्करण नियंत्रण प्रणाली एक साझा सर्वर के साथ करता है। (मेरे पास साझा सर्वर नहीं है।)
बिल्वपत्र

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

यह पहले से ही यहां कहा गया है कि एसवीएन स्थानीय भंडारण का समर्थन करता है और आप यूएसबी का उपयोग कर सकते हैं। लेकिन मैं अपने निजी ड्रॉपबॉक्स फ़ोल्डर में DB को स्टोर करना पसंद करता हूं;) आप कई मुफ्त सेवाओं (जैसे असेंबली या tfs.visualstudio.com) का भी उपयोग कर सकते हैं
Pavel Voronin

जवाबों:


31

एक DVCS जैसे Git या Mercurial का उपयोग करें ।

वितरित संस्करण नियंत्रण सिस्टम में एक साझा केंद्रीय सर्वर नहीं है।

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


9
और अगर आप
गितुब का

धन्यवाद। क्या रिपॉजिटरी के रूप में पोर्टेबल स्टोरेज का उपयोग करने के लिए इसे सेटअप किया जा सकता है?
बिल्वपत्र

@billpg - हाँ। यह बस एक निर्देशिका संरचना में रहता है।
Oded

@CamelBlues या bitbucket या kilnhg या शायद विभिन्न अन्य जो उचित हो सकते हैं या नहीं भी हो सकते हैं ...
Murph

3
मुझे ड्रॉपबॉक्स पर अपना मुख्य व्यक्तिगत मर्क्यूरियल रिपॉजिटरी मिला है। महान काम करता है, और स्वचालित रूप से बैकअप लागू करता है (चूंकि ड्रॉपबॉक्स उसी समय दूर जाने की संभावना नहीं है कि मैं अपने सभी कंप्यूटर खो देता हूं)।
डेविड थॉर्नले

7

ऊपर बताए गए GIT, Mercurial आदि के अलावा, फॉसिल पर भी एक नज़र है - इसके फायदे हैं कि रन टाइम बायनेरिज़ छोटे हैं (विंडोज और लिनक्स के लिए 1Meg या तो), पोर्टेबल और शून्य स्थापना की आवश्यकता है। इसलिए दूसरों के विपरीत (जहां तक ​​मुझे जानकारी है) इसे स्टोरेज डिवाइस पर डाला जा सकता है और किसी भी मशीन पर चलाया जा सकता है, स्टोरेज को प्लग किया जाता है, बिना मशीन पर ऐप इंस्टॉल किए बिना। इसमें रेपो के साथ विकी और चेंज / डिफेक्ट ट्रैकिंग सिस्टम शामिल है। इसमें निर्मित एक गुई भी है।

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


हालाँकि Git एक काम करने के लिए Unix कमांड लेता है और इसे गंभीरता से लेता है, आप Git में ये फीचर्स ticgit (टिकटिंग सिस्टम) और gollum (रेपो-आधारित विकी) जैसे एक्सटेंशन के माध्यम से ले सकते हैं।
जेसन लुईस

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

1

DCVS का उपयोग करना शायद एक अच्छा विचार है, लेकिन यह एकमात्र विकल्प नहीं है।

मेरे पास USB थंब ड्राइव पर एक छोटा सीवीएस भंडार है। जब मैं इसे एक्सेस करना चाहता हूं, तो मुझे रिपॉजिटरी के रूट के पथ का उपयोग करने cvs -d <path>या सेट $CVSROOTकरने की आवश्यकता है (निश्चित रूप से सिस्टम पर अंगूठे ड्राइव को माउंट करने की आवश्यकता है)।

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

सामान्य तौर पर सीवीएस के बजाय डीसीवीएस का उपयोग करने के तर्क हैं। मुझे नहीं लगता कि वे तर्क विशेष रूप से प्रभावित होते हैं कि केंद्रीय रिपॉजिटरी एक अंगूठे की ड्राइव पर है या कहीं और। उदाहरण के लिए, आप बस अंगूठे ड्राइव पर आसानी से गिट रिपॉजिटरी बना सकते हैं।


1
मैं सामान्य रूप से DVCS का बहुत बड़ा प्रशंसक नहीं हूं, लेकिन मुझे लगता है कि DVCS इस मामले में बेहतर होगा। गैर-वितरित वीसीएस के साथ समस्या यह है कि रेपो विफलता का एक बिंदु है। यदि यह एक जलवायु-नियंत्रित डेटा केंद्र में बैठा है और नियमित रूप से बैकअप लेता है, तो यह कोई बड़ी बात नहीं है - लेकिन अंगूठे के ड्राइव जैसा कुछ खो जाएगा (या एक कुत्ते द्वारा खाया गया, या एक सफेद रूसी में गिरा दिया गया) या बाद में।
माइक बैरनज़क

1
@ माइकबारकंजक: अच्छी बात है - लेकिन एक अंगूठे की ड्राइव पर कुछ भी नियमित रूप से समर्थित होना चाहिए, चाहे वह सीवीएस रिपॉजिटरी हो या नहीं।
कीथ थॉम्पसन

एक वितरित प्रणाली के साथ, प्रत्येक ग्राहक के पास पहले से ही रेपो की एक पूरी प्रति है। इसलिए अलग "बैक अप" प्रक्रिया का कोई कारण नहीं है।
माइक बारांज़क

1
@ माइकबारकंजक: निश्चित रूप से, यह डीसीवीएस का उपयोग करने का एक अच्छा कारण है। मेरा कहना है कि DCVS बनाम एक केंद्रीकृत प्रणाली का चुनाव इस बात पर निर्भर नहीं करता है कि आप थंब ड्राइव का उपयोग कर रहे हैं या नहीं।
कीथ थॉम्पसन

0

अन्य उत्तरों के अतिरिक्त:

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

एक DVCS की तुलना में नुकसान यह होगा कि आप केवल सबवर्सन (यानी कमिट, व्यू लॉग आदि) के साथ काम कर सकते हैं, जबकि थंब ड्राइव को प्लग किया जाता है। इसके अलावा, यह हमेशा एक ही थंब ड्राइव (या कम से कम) होना चाहिए। -ऑटो-डेट कॉपी), क्योंकि तोड़फोड़ के साथ आपको एक से अधिक रिपॉजिटरी (गैर-वितरित भाग) का उपयोग नहीं करना चाहिए। इसलिए यदि आप कभी भी अपने अंगूठे की ड्राइव को भूल जाते हैं, तो आप इसे Git या Mercurial के विपरीत उपयोग नहीं कर सकते।

ध्यान दें:

जैसा कि ऊपर बताया गया है, और टिप्पणियों में, DVCS वास्तव में आपकी समस्या के लिए एक बेहतर फिट है। मैंने केवल संपूर्णता के लिए सबवर्सन का उल्लेख किया है, और आपके पास सबवर्सन का उपयोग करने के लिए कुछ विशेष कारण हैं।


1
साथ के रूप में कीथ के जवाब है, एक स्थानीय निर्देशिका में एक VCS के साथ समस्या यह है कि यह असफलता का एक बिंदु है। इसके अलावा, अगर आप मशीन A से मशीन B पर जाते हैं, लेकिन मशीन A में प्लग किए गए थंब ड्राइव को छोड़ देते हैं, तो आपको DVCS का उपयोग करते समय देखभाल करने की बहुत कम संभावना है (आप हमेशा अपने स्थानीय परिवर्तनों में विलय कर सकते हैं) जबकि VCS के साथ , आपको mechine A पर वापस जाना होगा, ड्राइव प्राप्त कर सकते हैं और मशीन B पर वापस जा सकते हैं इससे पहले कि आप इसे जारी रख सकें।
मार्क बूथ

@MarkBooth: मैं इस समाधान की वकालत नहीं कर रहा हूँ, मैं सिर्फ यह बताना चाहता था कि यह मौजूद है, पूर्णता के लिए और मामले में ओपी में तोड़फोड़ के लिए कुछ विशेष प्राथमिकताएँ हैं। मैंने इसे स्पष्ट करने के लिए अपना उत्तर संपादित किया।
सालेके १ke

धन्यवाद @sleske, मैं सहमत हूं कि svn(या वास्तव में Cvs) के लिए एक वरीयता उस समाधान का उपयोग करने के पक्ष में वजन कर सकती है, लेकिन पूर्ण प्रकटीकरण के हितों में, उस दृष्टिकोण के डाउनसाइड का भी उल्लेख किया जाना चाहिए। मेरी टिप्पणी से बिंदुओं को अपने उत्तर में संपादित करने के लिए स्वतंत्र महसूस करें। यदि आप करते हैं, तो मुझे अपनी टिप्पणियों को साफ करने (हटाने) में खुशी होगी। * * ’)
मार्क बूथ

मुझे यकीन नहीं है कि यह उत्तर क्या कहता है कि मैंने पहले से ही मेरा नहीं कहा।
कीथ थॉम्पसन

1
@KeithThompson: यह जानकारी जोड़ता है कि SVN केंद्रीय सर्वर के बजाय स्थानीय निर्देशिका का उपयोग कर सकता है। यह एसवीएन डॉक्स में समझाया गया है, लेकिन चूंकि अधिकांश लोग केंद्रीय सर्वर के माध्यम से एसवीएन का उपयोग करते हैं, इसलिए यह स्पष्ट नहीं हो सकता है कि एसवीएन को सर्वर की आवश्यकता नहीं है।
सालेके
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.