2010-05-10 13 views
8

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

इस कार्य के लिए सबसे अच्छा संस्करण नियंत्रण समाधान क्या है? हमारा संगठन TFS2010 में विलय करने की प्रक्रिया में है। क्या TFS2010 हमें उस कार्यक्षमता प्रदान करेगा जो हमें सिस्टम सिस्टम प्रति शाखाओं की श्रृंखला का आसानी से प्रबंधित करने की आवश्यकता है? हमें प्रत्येक संस्करण को अलग-अलग संस्करणों से अलग रखने में सक्षम होना चाहिए, ताकि हम प्रत्येक संस्करण के लिए परीक्षण और तैनाती कर सकें।

हमारी देव टीम में 5 नेट डेवलपर्स और दो फ्लैश डेवलपर शामिल हैं।

मैंने जीआईटी के बारे में बहुत सी बात सुनी है। क्या हमें स्रोत नियंत्रण के लिए टीएफएस के बजाय जीआईटी का उपयोग करने पर विचार करना चाहिए? क्या जीआईटी के साथ टीएफएस -2010 का उपयोग करना संभव है? क्या किसी के पास समान सेटअप हैं जो अच्छी तरह से काम करता है?

किसी भी सुझाव की सराहना की जाती है!

धन्यवाद,

Kjetil।

उत्तर

9

मुख्य कारण उस Git पर विचार करना चाहिए (या मर्क्युरियल) है के लिए:

  • अपने Distributed nature
  • विलय (एक परिणाम है, वास्तव में, वितरित किया जा रहा की में इसकी आसानी)
  • 0।

यदि आपकी टीम एक साइट पर स्थित है, और यदि आपकी विकास प्रक्रिया पर्याप्त रैखिक (सरल विलय वर्कफ़्लो) है, तो एक केंद्रीकृत वीसीएस पर्याप्त है।

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

+0

+1। वितरित संस्करण नियंत्रण भविष्य है। –

+0

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

+1

@ टॉमटॉम: दोनों पारस्परिक रूप से अनन्य नहीं हैं। यदि आप एक केंद्रीय रेपो चाहते हैं, तो एक बनाओ। निश्चित रूप से, अन्य लोगों के पास क्लोन हैं, लेकिन वे आधिकारिक नहीं हैं। ऐसे गेरिट जैसे टूल हैं जो केंद्रीय रेपो में काम करने से पहले समीक्षा की आवश्यकता में आपकी सहायता कर सकते हैं। और एक निरंतर एकीकरण/स्वचालित निर्माण उपकरण किसी भी चीज के रूप में गिट भंडार में आसानी से निर्माण शुरू कर सकता है। – Cascabel

5

टीएफएस 2010 - हाथ नीचे। एक महान संस्करण contrrol प्रणाली होने के लिए नहीं, लेकिन बाकी के बाकी के कारण यह करता है। जीआईटी आपको कार्य आइटम ट्रैकिंग, निरंतर एकीकरण फिर से चुनने के लिए खुलेगा। आपूर्तिकर्ताओं (कम प्रौद्योगिकियों की संख्या रखते हुए बेहतर प्रशासन के लिए एक मूल है।

+0

मैं प्रशासन के मुद्दे से सहमत हूं, लेकिन मुझे यह भी लगता है कि संस्करण नियंत्रण प्रणाली के रूप में टीएफएस के बारे में बहुत सी नकारात्मक बात है। क्या अन्य समाधानों की तुलना में टीएफएस में कोई बड़ी कमी है? – dalecooper

+1

कोई विचार नहीं। मैं कुछ हिस्सों की स्पष्ट मूर्खताओं के लिए 2010 से पहले टीएफएस को नहीं छूंगा। अब मैं टीएफएस 2010 का उपयोग करता हूं और अब तक मुझे यह पसंद है। जाहिर है, यह केंद्रीकृत है, लेकिन व्यक्तिगत रूप से मैं इसे सकारात्मक पक्ष के रूप में देखता हूं। यह SQL सर्वर का उपयोग करता है - फिर से, सकारात्मक। मुझे वास्तव में बल्ब पर्यावरण पसंद है, हालांकि मेरे सामने कुछ भारी अनुकूलन हैं (ज्यादातर विधानसभा संस्करण संख्याओं के आसपास)। – TomTom

+1

आईएमओ - जटिल बल शाखाओं के प्रबंधन के लिए वहां सबसे अच्छा है क्योंकि यह पूर्ण इंटर-फाइल ब्रांचिंग और 'आलसी' शाखाओं का समर्थन करता है यानी डीबी ब्रांडेड फ़ाइल के सिम्लिंक को तब तक रखता है जब तक ब्रांडेड फ़ाइल बदल नहीं जाती – zebrabox

9

मर्क्युरियल भी काम करेगा।

यहाँ यह पर एक उत्कृष्ट tutorial है।

+3

मुझे मर्क्यूरियल पसंद है :-) –

+3

मैं दूसरा एचजी। यदि आप पहले से ही एक माइक्रोसॉफ्ट की दुकान हैं, तो आपको मर्कुरियल समर्थन गिट की तुलना में काफी बेहतर मिलेगा। TortoiseHg हमारे लिए काफी ठोस रहा है। –

+1

मैंने हाल ही में अपने बॉस को राजी किया है कि मुझे अपनी कुछ परियोजनाओं को इसे देखने के लिए Merc पर ले जाने दें, और यह एक अच्छा कदम था :) –

1

आज मुख्य रूप से दो प्रकार के वर्जन कंट्रोल सिस्टम (वीसीएस), तथाकथित वितरित वीसीएस और केंद्रीय भंडार प्रणाली हैं।

सबसे लोकप्रिय "वितरित" वीसीएस आज गिट और मर्कुरियल हैं। सबसे लोकप्रिय केंद्रीय भंडार प्रणाली माइक्रोसॉफ्ट के उपवर्तन और स्रोतसेफ हैं। http://hginit.com परिचय केंद्रीय प्रणाली पर "वितरित" वीसीएस की श्रेष्ठता की व्याख्या करता है।

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

+0

केंद्रीय भंडार प्रणाली के लिए perforce मत भूलना - यह बहुत लोकप्रिय है और बहुत अच्छा – zebrabox

+1

क्या हम अच्छे विवेक में SourceSafe का उल्लेख कर सकते हैं? –

+0

नकारात्मक ghostrider – Albert

0

सबवर्सन !!!

मैं सबवर्सन, + TortiseSVN + VisualSVN

http://subversion.tigris.org/
http://tortoisesvn.tigris.org/
http://www.visualsvn.com/

सबवर्सन पसंद है और Tortise नि: शुल्क कर रहे हैं !, और VisualSVN लाइसेंस प्रति केवल $ 50 है (लेकिन आप का उपयोग करने की जरूरत नहीं विजुअल-एसवीएन, यह सिर्फ वीएस एकीकरण है .... जहां तक ​​मेरा संबंध है, आवश्यक नहीं है।)

यहां तीनों उत्पादों के लिए एक ट्यूटोरियल और स्थापना मार्गदर्शिका है।
http://www.west-wind.com/presentations/subversion/

और एक अन्य ...
http://www.dev102.com/2008/10/07/how-to-use-the-svn-client-and-start-working-with-your-subversion-version-control/

+0

वहां गया - मुख्य रूप से बेकार है। वह आखिरी परामर्श ग्राहक मैं इसका इस्तेमाल करता था, और हमें साप्ताहिक की तरह कहीं बड़ा मुद्दा मिला। अधिकांशतः यूआई मुद्दा (कछुआ), लेकिन जब यह मारा गया तो यह दर्दनाक था। और प्रदर्शन 500 एमबी पर अजीब था ऑपरेशन;) यह सुनिश्चित नहीं है कि उसमें से कितना बेवकूफ प्रशासन था। – TomTom

+0

यह अजीब है, हम इसे कुछ अनुप्रयोगों के लिए उपयोग करते हैं और यह खूबसूरती से काम करता है। कभी कोई समस्या नहीं! शायद यह subversion का उल्लेख करने के लिए सेटअप/config :) – Albert

+0

+1 में है। मुझे उपversण और कछुए svn के साथ अच्छा अनुभव रहा है। – SoftwareGeek

0

सभी आवश्यकताओं को तुम्हारी जरूरत है TFS 2010 शाखाओं में बंटी में शामिल किए गए हैं, और शाखाओं रखने को अलग किया।

टीएफएस केवल एक संस्करण नियंत्रण प्रणाली के रूप में अधिक है। यह एक काम/बग नियंत्रण प्रणाली भी है और एकीकृत निर्माण के लिए उपकरण हैं। यदि आपको इनकी आवश्यकता है, और आपके पास पहले से ही टीएफएस 2010 के लिए लाइसेंस है, तो अपने सिस्टम को अन्य सिस्टम पर बर्बाद न करें।

ठीक है, टीएफएस वितरित नहीं किया गया है, लेकिन असल में, जब मैं काम करता हूं तो मुझे टीएफएस वितरित नहीं किया जाता है। जैसे ही मैं सामान (मेरी व्यक्तिगत शाखा में) में चेक करता हूं, यह दैनिक बैकअप पर होगा, और दूसरों के लिए देखने के लिए उपलब्ध है। (मेरे घर/शौक/व्यक्तिगत सामान के लिए मैं Mercurial का उपयोग करें)।

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

0

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

तथ्य यह है कि लिनक्स कर्नेल विकास गिट का उपयोग करता है, मुझे पता है क्योंकि लिनस ने ऐसा कहा था :), जो एक छोटी परियोजना नहीं है, खुद के लिए बोलती है।

0

एक अच्छा संशोधन नियंत्रण प्रणाली मेरी मदद करेगा जब मैं बिखरे हुए तरीके से पर काम कर रहा हूं। ऐसा नहीं है क्योंकि मुझे बिखरे हुए होने की इच्छा है, लेकिन दिन-प्रतिदिन की मांगों में स्कैटरिंग का एक तरीका है कि कोई कैसे काम करता है। एक समूह एक सभ्य आकार की परियोजना पर समानांतर में काम कर रहा है जब बिखरने तेज हो गया है।

व्यक्ति एक विशेषता 1. पर काम कर रहा है व्यक्ति बी सुविधा 2. व्यक्ति सी फिक्सिंग पर काम कर रहा है जारी किया गया संस्करण पर कीड़े सूचना पर काम कर रहा है।

जबकि ए अपना काम कर रहा है, वह कोड में एक त्रुटि देखता है और इसे पर स्थानांतरित करता है ताकि इसे अनदेखा न किया जा सके और जारी रहे। व्यक्ति सी 3 सुधार करता है।

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

बॉस का फैसला है कि हम फीचर 1 के साथ एक संस्करण चाहते हैं, फीचर 2, के साथ एक और संस्करण और दोनों सुविधाओं के साथ एक संस्करण, और एक संस्करण जिसे जारी किया गया है और बनाए रखा गया है।

उपकरण इन गतिविधियों में आपको कितनी अच्छी तरह से समर्थन करता है? उपकरण इन गतिविधियों में आपको कितना बाधा डालता है?

मैं वास्तव में 'डार्क्स' से खुश हूं।

मैंने कई संशोधन नियंत्रण प्रणाली की कोशिश की है। मैं किसी भी बेहतर नहीं आया है।

यह आसान है, यह कड़ाई से सही है।

क्योंकि यह कठोर है यह विश्वसनीय और अनुमानित है। क्योंकि यह आसान है, यह सहायक है और आपके रास्ते में नहीं आता है।

मेरी दूसरी पसंद गिट होगी।

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

http://en.wikipedia.org/wiki/Comparison_of_revision_control_software

1

मेरे अनुभव के आधार पर, आप एक DVCS, Git या मर्क्युरियल (Hg) के लिए देख रहे हैं जाने के लिए रास्ता है। हालांकि, गिट और एचजी के बीच निर्णय करना एक कठिन काम है।

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

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

मेरे आकलन में

तो, असली सवाल कर रहे हैं:

विंडोज (Hg) या यूनिक्स (Git)

और

ग्राफिकल (TortoiseHg) या कमांड लाइन (Git शेल)

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