2008-10-22 12 views
27

पिछले साल के भीतर मैं विचलन का आदी हो गया हूं। मैं एकमात्र डेवलपर हूं और मैं अपनी कुछ परियोजनाओं पर भी काम करता हूं। एसवीएन के साथ सबकुछ प्रबंधित करना वास्तव में आसान है - और क्योंकि यह ऑनलाइन सर्वर पर होस्ट किया जाता है हालांकि HTTPS मैं कहीं से भी अपने कोड तक पहुंच सकता हूं। हमारे उत्पादन/विकास सर्वर को कोड तैनात करने के लिए भी बहुत अच्छा है।क्या मुझे सबवर्जन से परे वर्जन कंट्रोल सिस्टम देखना चाहिए?

मेरा मुद्दा यह है कि यह सब कुछ करता है जो मुझे करने की ज़रूरत है और मुझे कभी विफल नहीं हुआ है।

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

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

+1

आप Mercurial को आजमा सकते हैं। यह उन लोगों के लिए पर्याप्त है जो अतीत में svn को छू चुके हैं। –

उत्तर

29

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

यदि आप बहुत से अलग काम कर रहे हैं, कभी-कभी "हवाई जहाज मोड" कहा जाता है, जैसा कि आप एक हवाई जहाज पर हैं और प्रतिबद्ध नहीं हो सकते हैं, तो बाज़ार पर एक नज़र डालें। मुझे गिट या मर्कुरियल से अधिक acclimate मिल गया है।

यदि आप हमेशा नेट से जुड़े काम कर रहे हैं, और आप एकमात्र डेवलपर हैं, तो आप शायद सबवर्सन के साथ रह सकते हैं।

इसके अलावा, कृपया keeping your home directory in Subversion के मान पर विचार करें।

+8

मैं वाक्यांश दूंगा कि, "यदि आपके पास हमेशा आपके केंद्रीकृत सर्वर से वास्तव में अच्छा और तेज़ नेटवर्क कनेक्शन है, तो केंद्रीकृत सर्वर हमेशा बेकार ढंग से काम कर रहा है, आप केवल एक मशीन पर काम कर रहे हैं, और कोई भी परियोजना पर नहीं है, तो यह गिट की तुलना में इतना बुरा नहीं हो सकता है। " – Dustin

+1

एक वितरित संस्करण नियंत्रण प्रणाली के रूप में http://monotone.ca/ भी है। – lapo

12

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

स्रोत नियंत्रण हमेशा नवीनतम और महानतम के बारे में नहीं है, लेकिन यह अक्सर और क्या किया जाता है इसके बारे में अक्सर होता है।

+0

यदि आप नौकरी लेते हैं क्योंकि आप उपversण जानते हैं, तो आप कार्यालय में कुछ उबाऊ समय के लिए हो सकते हैं। जीआईटी सहज सहयोग को सक्षम बनाता है जो कि अधिक मजेदार है। – Hugo

+0

टिप्पणी यह ​​थी कि यह एक कौशल सेट है जो आपको फिर से शुरू करने के ढेर के शीर्ष पर ले जाता है, मैं बस इतना कह रहा था :-) –

+3

वीसीएस का उपयोग करना कितना मुश्किल है? या एक सीखो? निश्चित रूप से, यह नियोक्ता द्वारा उपयोग किए जाने वाले वीसीएस के ब्योरे को जानने में मदद करता है, लेकिन निश्चित रूप से, कुछ नौकरियां हैं जहां काम वीसीएस के बारे में है और बड़े काम के हिस्से के रूप में इसका उपयोग करने के बारे में नहीं - जैसे कुछ एप्लिकेशन या उत्पाद प्रोग्रामिंग? –

11

यहाँ 3 reasons to switch to git from Subversion (MarkMcB से) कर रहे हैं:

  • अंतहीन, आसान, गैर फ़ाइल-प्रणाली के आधार पर, स्थानीय शाखाओं
  • अस्थायी काम
  • सहयोग से पहले सार्वजनिक करता stashing

(पूर्ण स्पष्टीकरण के लिए लिंक्ड आलेख पढ़ें और दोनों गिट और सबवर्जन में तीन चीजों को कैसे करें, इसकी सीधी तुलना करें।)

+0

जब से एसवीएन फाइल-सिस्टम-आधारित था? –

5

Mercurial भी विचार लायक है; शाखाकरण बहुत दोस्ताना है, और यह नेटवर्क कनेक्शन के बिना काम कर सकता है। जब तक मैं एसवीएन से मरकुरियल तक नहीं चला जाता तब तक मैंने कभी भी शाखाओं में काम को अलग करने की गंभीरता से कोशिश नहीं की।

एक चीज जिसे मैं गंभीरता से याद करता हूं वह है TortoiseSVN; वहाँ एक कामकाज (TortoiseHg) है जो बहुत अच्छा है, लेकिन यह वही नहीं है ..

वैसे भी, एक एसवीएन से एक मर्कुरियल रेपो बनाना एक छोटा सा आसान है ... इसे आज़माएं और देखें कि यह आपके लिए उपयुक्त है या नहीं ।

7

मैं व्यक्तिगत रूप से सबवर्सन के साथ रहूंगा, क्या कुछ बेहतर है?

सबवर्जन एक महान संस्करण नियंत्रण प्रणाली है, और आप इससे खुश हैं, इसलिए यदि आप आगे देख रहे हैं, तो मैं आपको Continuous Integration के बारे में कुछ जानकारी प्राप्त करने की सलाह दे सकता हूं, वहां कई टूल हैं जो आपकी मदद कर सकते हैं स्वचालित निर्माण करें, अपने निर्माण को स्वयं परीक्षण करें, प्रत्येक प्रतिबद्धता की अखंडता की जांच करें, और बहुत कुछ ...

12

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

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

17

मर्क्युरियल

मैं मुख्य रूप से सीवीएस और SVN, खुश और संतुष्ट इस्तेमाल किया, तो मैं वितरित स्रोत नियंत्रण शोध के रूप में वहाँ DSVC के बारे में किए उपद्रव के बहुत सारे शुरू कर दिया था। एक डीएसवीसी का उपयोग करने के बाद मैंने अपनी विकास शैली में बदलाव देखा, मैं अधिक तरल पदार्थ और अनुकूलनीय बन गया। मुझे ट्रंक या प्रायोगिक शाखा में दर्द रहित तरीके से विलय करने की इजाजत दी गई।

  • Mercurial एक आदमी बैंड से विशाल यानी ओपनजेडीके तक स्केल कर सकता है, बिना सिरदर्द के।
  • मर्कुरियल तेज़ है, शायद जीआईटी जितना तेज नहीं है, लेकिन यह अभी भी वास्तव में त्वरित है
  • Mercurial Queues पैच के प्रबंधन का एक शानदार तरीका है। ग्रीस प्रकाश की गति पर।
  • यह विभिन्न ओएस पर चल सकता है, अनुकूलता महान है क्योंकि यह अजगर पर आधारित है।
  • सीखने की अवस्था GIT से कम है, के बाद कुछ डॉक्स पढ़ आप चीजों (http://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/)
  • Hg (इतने सारे DSVCs करते हैं) आप एचजी-SVN के साथ एक कंपनी की SVN स्रोत नियंत्रण के साथ इंटरफेस करने की अनुमति देता है के बुनियादी jist मिल और hgsubversion जो के साथ एक अद्भुत विस्तार है की अनुमति देता है और checkouts, लेकिन अभी तक आगे बढ़ाने या कार्यक्षमता
  • आप कर सकते हैं भी सेटअप एक HTTP सर्वर रन धक्का प्रतिबद्ध और SSH के माध्यम से खींच
  • भी अपने कोडिंग साथी के साथ एक साथ होने का वास्तव में साफ विकल्प नहीं और बस स्टार्टअप HTTP सर्वर इसे स्थानीयहोस्ट पर चलाता है और जब आप कोड स्प्रिंट करते हैं तो आपके साथी धक्का और खींच सकते हैं।
  • आप इस HTTP पृष्ठ के माध्यम से परियोजना की वर्तमान स्थिति भी देख सकते हैं।
  • अंत में Git सरल आदेशों (http://edong.net/2008v1/docs/dongwoo-Hg-PDF.pdf)

का एक संक्षिप्त विवरण

  • इसे करने की कोशिश के लिए यहाँ देखो, SVN के लिए अपने समर्थन तेज से बेहतर है।लेकिन चूंकि hgsubversion ऊपर है और गिट svn के लिए प्रतियोगिता बन रहा है।

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

BzR

  • कभी नहीं की कोशिश की यह

मैं havnt वापस देखा के बाद से मैं HG

+0

बाजार मर्कुरियल से भी धीमा है। यह लगभग समान है। –

3

नियम नहीं के साथ शुरू कर दिया। 1:

के रूप में भी कई चमकदार नया समाधान कर रहे हैं (समस्याओं के लिए आप की जरूरत नहीं है के रूप में आप अकेले काम,) "कभी किसी चल रहे सिस्टम को बदलने", आप एक नया VCS में स्विच करने की लागत पर विचार करना चाहिए: Mercurial/git के लिए उपversण का आयात एक आसान काम नहीं है

कोई उपकरण (AFAIK) नहीं है, जो डंपफॉर्मैट का उपयोग करके svn repos आयात करता है। तो यदि आप डंपफॉर्मैट का उपयोग नहीं करते हैं तो आप एसवीएन से सभी शाखाओं/टैग्स को चेकआउट करने के लिए चिपकेंगे और उन्हें गिट/बीजेडआर/मर्कुरियल मैन्युअल रूप से/स्क्रिप्ट

में जोड़ना होगा, इसलिए मुझे नहीं पता कि आपके प्रतिनिधि कितने बड़े हैं (मेरे प्रतिनिधि हैं 20 एमबी से 24 जीबी तक), लेकिन इसमें लंबे समय तक लगेगा ताकि पूरे रिपो की जांच हो सके और बहुत सारे टैग के साथ छोटी परियोजनाएं हार्डडिस्क स्पेस खा सकें।

अतिरिक्त समस्या तब तक होती है जब तक आपका माइग्रेशन नहीं किया जाता है, आप काम जारी नहीं रख सकते हैं।

+0

> git svn init -s http://svn-project.com/svn/my_proj > गिट svn fetch > गिट repack -d इसे वास्तव में अच्छी तरह से नीचे squashes, हार्डडिस्क कोई मुद्दा नहीं है। गिट का उपयोग वास्तव में इतना बुरा नहीं है। – Setori

+0

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

1

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

1

पुरानी यान्की नीति है।

यदि यह तोड़ा नहीं गया है, तो इसे ठीक न करें।

+1

मुझे लगता है कि असेंबली, प्रक्रियात्मक और ओओपी भाषाओं के डेवलपर्स आपके जैसा ही मानसिकता नहीं रखते हैं;) हमेशा कुछ नया करने का कारण होता है। अगर यह विफल रहता है तो यह विफल रहता है; लेकिन अगर यह काम करता है तो यह भी बेहतर है। और नई चीजों की कोशिश करना मजेदार है। – nlaq

+1

मुझे लगता है कि डिजाइन द्वारा सीवी टूट जाती है। आप एक टूटी हुई डिज़ाइन का उपयोग करते हैं और समस्याएं बन जाती हैं ... – Setori

+2

पुरानी डेवलपर नीति: एसवीएन तोड़ दिया गया है। – Mike

2

मैं सबसे अच्छा टूल प्राप्त करने के लिए निरंतर जांच के मुद्दे में आपके जैसा ही हूं।

मैंने सोलो काम के लिए एसवीएन की कोशिश की और किसी ने मुझे Mercurial (hg) की सिफारिश की। अब मैं इसके बारे में मुख्य नोट्स करता हूं। यह खिड़कियों में गिट की तुलना में अधिक अनुकूल है। अब मैं सोचता हूं "svn टैग की तरह सरल कार्य के साथ क्यों जटिल है"। एसवीएन नहीं जानता कि टैग क्या है। एसवीएन के लिए एक टैग एक प्रति है। Mercurial में एक संशोधन एक संशोधन के लिए एक उपनाम है। यह कितना जटिल हो सकता है?

प्रदर्शन यह एक अन्य मुद्दा है। Mercurial में आपका रेपो यह आपकी स्थानीय मशीन में है। तो यह लॉग, या diff या इतिहास के लिए बहुत तेज़ है।

हालांकि मुझे उन सर्वरों के बारे में कुछ भी पता नहीं है जो आपके रेपो के ऑनलाइन संस्करण के लिए Mercurial का समर्थन करते हैं।

+0

आह, एचटीटीपीएस पर भंडार की सेवा करने में सक्षम होने के लिए मेरे लिए जरूरी है। हालांकि, मैं आगे बढ़ जाऊंगा और इसे देख लूंगा। धन्यवाद। – nlaq

+0

Mercurial https पर भंडार की सेवा कर सकता है लेकिन मुझे इसके लिए सार्वजनिक सर्वर नहीं पता है। मुझे लगता है कि दो समाधान: एक svn-hg पुल ऐप; या सार्वजनिक सर्वर के लिए Mercurial साइट पर देखो। – user2427

+0

मुझे फिर से। इस लिंक को देखें http://www.selenic.com/mercurial/wiki/index.cgi/MercurialHosting – user2427

1

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

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