2008-09-26 14 views
67

मैं इस समय एक अकेला डेवलपर हूं; कृपया एक अकेले डेवलपर के लिए एक अच्छा वीसी सेटअप क्या है, इस पर अनुभव साझा करें।अकेले डेवलपर के लिए सर्वश्रेष्ठ संस्करण नियंत्रण

मेरी बाधाएं हैं;

  • मैं कई मशीनों पर काम करते हैं और उन्हें समन्वयित किया
  • कभी कभी मैं ऑफलाइन काम

मैं वर्तमान में सबवर्सन (एक दूरस्थ सर्वर से सिर्फ ग्राहक) का उपयोग कर रहा रखने की जरूरत है, और वह यह है कि ठीक काम कर रहा हूँ मुझे Mercurial और गिट DVCS में दिलचस्पी है, लेकिन उनके उपयोग के मामलों में से कोई भी मेरी स्थिति को समझ में नहीं आता है।

संपादित करें: मैंने अपने सक्रिय विकास को क्लाइंट के साथ परीक्षण करने के बाद जीवाश्म http://www.fossil-scm.org/ पर माइग्रेट कर दिया है। मुझे वास्तव में मेरी रिपॉजिटरीज़ (आकस्मिक कांटे को कम करने), दस्तावेज़ीकरण समर्थन (विकी और एम्बेडेड/वर्जन दोनों) को ऑटोसिनक करने के लिए विशेषताओं को पसंद है जो कोड और परियोजना को विभिन्न रिक्त स्थानों में दस्तावेज करने की मेरी आवश्यकता का समर्थन करता है, समस्या ट्रैकर को कॉन्फ़िगर करने में आसान, अच्छी पहुंच नियंत्रण, skinnable वेब इंटरफ़ेस और सहायक समुदाय।

+1

इस प्रश्न ने http://stackoverflow.com/questions/97850/version-control-on-a-2gb-usb-drive#97955 – Stephen

+0

मुझे सभी को VSS पसंद नहीं है। हालांकि, इसका एक फायदा है कि दूसरों को नहीं: इसकी फाइल सिस्टम आधारित है। तो, एक डेवलपर के लिए, अलग-अलग स्थानों पर सिंक करना चाहते हैं, एक mesh.com फ़ोल्डर में एक VSS डीबी डालने के लिए – Will

+0

चलाने और चलाने के लिए एक त्वरित तरीका है। मैं भी बहुत खुश हूं कि जीवाश्म चलाने की कोशिश की गई चीज़ों पर जीवाश्म चलाता है या संकलित करता है देव पर: एक्सपी, विस्टा, पीपीसी मैक, इंटेल मैक, और विंडोज 7. – Stephen

उत्तर

43

क्या मैं जीवाश्म नामक एक नया संस्करण नियंत्रण सुझा सकता हूं।

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

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

अधिक जानकारी http://www.fossil-scm.org/ पर देखी जा सकती है और यदि आप बारीकी से देखते हैं तो आप देखते हैं कि पूरी साइट वास्तव में जीवाश्म है।

एक चीज़ जो वास्तव में मुझे जीवाश्म से प्रभावित करती है वह यह है कि यह सिर्फ एक फ़ाइल है, यह है। पूरा जीवाश्म कार्यक्रम अपेक्षाकृत छोटा है, लेकिन लेखक कौन है, यह वास्तव में एक आश्चर्य नहीं है।

और चूंकि आपकी रिपॉजिटरी एक स्क्लाइट फ़ाइल है, तो आप बस इसकी प्रतिलिपि बनाते हैं और आपके पास बैकअप है।

+1

आपको [मोनोटोन] (http://www.monotone.ca) में रुचि हो सकती है जो एक और डीवीसीएस है जो SQLite को बैकएंड स्टोरेज के रूप में उपयोग करता है। अपने अनुभव से मुझे यह समझना चाहिए कि बैकअप लेने या पूरी रिपोजिटरी की प्रतिलिपि बनाने में आसानी से यह वास्तव में अच्छा है। –

+3

जीवाश्म भयानक है !!! मैंने पहले कभी ऐसा ऐप नहीं देखा है, ऐसी सादगी और लचीलापन !!! – zengr

7

सबवर्जन महान काम करता है (विशेष रूप से टोर्टोइज एसवीएन के साथ)। मुझे नहीं लगता कि किसी भी वितरित वीसी को एक डेवलपर परिदृश्य में लाभ होगा।

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

+0

मुझे दिलचस्पी है कि * * * * * svn का उपयोग कैसे करें। – Stephen

+1

गिट एक व्यक्ति के लिए स्थापित करने के लिए fantastically आसान है, आप केवल एक निर्देशिका और उपकरणों के एक सेट की जरूरत है। कोई सर्वर आवश्यक नहीं है। –

+2

ऑफ़लाइन काम किए बिना भी, डीवीसीएस के केंद्रीकृत लोगों पर मजबूत फायदे हैं। रेपो बनाना बहुत आसान है और साथ ही कई शाखाओं पर समानांतर में काम करना भी आसान है। –

0

SourceGear Vault एक डेवलपर के लिए नि: शुल्क है और यह बहुत अच्छा है।

+0

यह एक अकेले डेवलपर के लिए अच्छा क्यों है? – Stephen

+2

ग्रेट। क्या आप वास्तव में एक वीसीएस चुनेंगे जिसे आप अब और उपयोग नहीं कर सकते जब कोई आपकी मदद करने के लिए तैयार हो ?! मुझे पागल लगता है। –

30

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

मैंने हाल ही में अपने सभी 80+ सबवर्जन रिपॉजिटरीज को गिट में परिवर्तित कर दिया है, और मैंने पीछे नहीं देखा है।

+0

इसी तरह, हाल ही में गिट के लिए मेरे सभी निजी सीवीएस repos माइग्रेट किया। किसी भी स्थानीय निर्देशिका के लिए उपयोग करने के लिए सही है जिसे आप संस्करण के लिए तय कर सकते हैं, या कई मशीनों में उपयोग के लिए अपने repos को github.com या assembla.com पर दबा सकते हैं। गिट, शानदार और शक्तिशाली पर – tardate

+0

सेकेंडिंग। – Valentin

+0

सहमत ... मैं गिटहब पर अपने स्रोत की एक केंद्रीय प्रतिलिपि रखता हूं और अपने रेपो की बैकअप प्रति यूएसबी कुंजी –

3

मैं हमेशा इस स्थिति (here's my answer to a similar question) ने अपने कमांड लाइन यूजर इंटरफेस के रूप में के लिए darcs सलाह देते हैं, उपयोग करने के लिए एक खुशी है और खुशी है कि मैं क्या मेरे अपने विकास :)

Git कुछ व्यावहारिक GUIs के साथ आता से चाहते है, लेकिन जब मैंने निजी परियोजनाओं के लिए उपयोग करने के लिए कमांड लाइन पर मारा तो मुझे डार्क्स की तुलना में यह बहुत कमजोर पाया गया।

या तो ऑफ़लाइन काम करने की आपकी आवश्यकता को पूरा करेगा और वे दोनों के साथ परिवर्तन सिंक्रनाइज़ करना आसान हो जाएगा।

0

मैं assembla.com की सलाह देता हूं - वे मुफ्त svn, विकी और ट्रैक प्रदान करते हैं। उस से बेहतर कोई नहीं मिलता!

+0

वे गिट – tardate

2

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

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

+0

कूल टिप का भी समर्थन करते हैं! मुझे एकजुट होने के बारे में पता नहीं था। – Stephen

13

Bazaar: solo use case और Bazaar in 5 minutes देखें।

खासकर ऑफ़लाइन उपयोग के लिए, distributed version control system जाने का तरीका है।

+1

बाजार के लिए डिट्टो, यह ड्रॉपबॉक्स पर भी काम करता प्रतीत होता है ताकि आप कई मशीनों पर मुफ्त में सिंक कर सकें। – johnstok

0

आप तोड़फोड़ के साथ comfortabel कर रहे हैं, मैं सुझाव है कि आप SVK

49

प्रत्येक व्यक्ति पर एक नज़र शायद आपको बता देंगे कि उनके पसंदीदा DVCS आपके लिए सबसे अच्छा है। मैं आपको बता दूंगा कि मर्कुरियल सबसे अच्छा है! ;-)

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

+0

मुझे पता है कि इसमें सबसे अधिक वोट नहीं हैं। लेकिन मुझे यह पसंद है। – Stephen

+0

एचजी में एक svn सर्वर के साथ बातचीत करने के लिए "hgsvn" नामक एक अनौपचारिक पैकेज भी है। हालांकि यह गिट के रूप में परिपक्व नहीं है, उदाहरण के लिए यह हमारे रेपो को बंद करने में सक्षम नहीं था - गिट में स्विच किया गया और कभी पीछे नहीं देखा। –

+0

@ ग्रेग: hgsvn के बजाय hgsubversion का प्रयास करें: http://bitbucket.org/durin42/hgsubversion/ यह Mercurial और Subversion के बीच एक दो-तरफा पुल है। –

2

आप सवाल मैंने पूछा सहायक के लिए जवाब मिल सकता है: (? एक की सेना) एक एक आदमी शो के लिए वीएसएस के लिए वैकल्पिक:

Alternative to VSS for a one man show (army of one?)

2

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

उदाहरण के लिए: एक संशोधन संख्या के पर्याय के रूप में टैग को लागू करने के लिए यह बहुत भिन्न है।

Mercurial में एक टैग बस यही है। आप svn में टैग के ट्रैकिंग संस्करणों को नहीं रख सकते हैं।

यहां पढ़ने के लिए dvcs guide पढ़ें। फिर आप svk, mercurial aka hg या git का उपयोग कर सकते हैं। लेकिन कृपया समय पर वापस न जाएं

+0

आपको अपना जवाब दोबारा देना चाहिए, कृपया! मैं देखकर आश्चर्यचकित हुआ "एसवीएन नहीं जानता कि टैग क्या है, या एक शाखा"। जो मुझे यह विचार है कि SVN शाखाओं या टैग नहीं कर सकते दिया, वे चीजें हैं जो मैंने पहले ही अपने लिए की हैं! तथ्य यह है कि, यदि एसवीएन प्रतियां और शाखाओं या टैग के बीच अंतर नहीं कर सकता है, तो यह आपको उन्हें करने की अनुमति देता है! – sergiol

1

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

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

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

+2

Bitbucket.org भी दिलचस्प है। यह Mercurial और Git (5 तक के लिए) के लिए मुफ्त असीमित सार्वजनिक * और निजी * खाते प्रदान करता है। इसमें विकी और इश्यू ट्रैकर अंतर्निहित है, और इसमें एक शक्तिशाली इंटरफ़ेस है, जो कि गिटहब की तरह है। यह व्यक्तिगत उपयोग के लिए पसंद का मेरा भंडार बन गया है। –

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