2009-01-10 9 views
21

मै मैक के लिए एक छोटी टीम (मुझे + एक और व्यक्ति) प्रयास के रूप में एक एप्लीकेशन विकसित कर रहा हूं। हम विभिन्न शहरों में स्थित हैं, और ठोस स्रोत नियंत्रण प्रबंधन की आवश्यकता को देखना शुरू कर दिया है।एक्सकोड के लिए कौन सी एससीएम प्रणाली?

हम में से कोई भी इसका अनुभव नहीं करता है, और हम दोनों कोको/ओब्जे-सी/एक्सकोड (लेकिन सी ज्ञान है) के लिए अपेक्षाकृत नया है।

क्या किसी के पास एससीएम सिस्टम चुनने के लिए कोई सिफारिश है? मैं समझता हूं कि बहुत से लोग Subversion का उपयोग कर रहे हैं, जो Xcode 3.1 में भी समर्थित है। क्या किसी को एक्सकोड के माध्यम से सबवर्जन का उपयोग करने का अनुभव है? या क्या संस्करणों जैसे अकेले स्टैंड जीयूआई विकल्प चुनने का यह बेहतर विकल्प है?

इस पर किसी भी इनपुट के लिए आभारी।

ग्रेगर टोमासेविच, स्वीडन

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

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

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

सभी टिप्पणियों के लिए धन्यवाद।

उत्तर

6

आप सबवर्सन का उपयोग करने में वास्तव में गलत नहीं जा सकते हैं।

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

मैं व्यक्तिगत रूप से संस्करण के साथ अपने अधिकतर कार्य करते हैं, और एक समय में एक ही काम कर रहे प्रतियां हर एक बार के साथ कमांड लाइन उपकरण का उपयोग करें।

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

प्रकटीकरण: मैं लोग हैं, जो संस्करण पर काम में से एक हूँ, इसलिए मैं थोड़ा पक्षपाती हो सकता है;)

+1

आप संस्करणों का उपयोग करते हैं? एक आश्चर्य है! ;-) – Abizern

+9

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

+0

@foljs: तो असली दुनिया के सॉफ्टवेयर इंजीनियरों के पास केंद्रीकृत एससीएम के साथ एक शताब्दी का अधिक अनुभव है? ;-) –

1

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

6

एक्सकोड का सबवर्जन समर्थन बहुत अच्छा है। मेरे द्वारा किए जाने वाले एसवीएन गतिविधियों का 9 0% एक्सकोड से आसानी से काम करने योग्य है। अन्य कुछ चीजों के लिए मैं टर्मिनल को आग लगा देता हूं।

वहाँ उनके SVN ग्राहक कार्यान्वयन में एक जोड़े चीजें हैं जो कष्टप्रद हैं:

  • कोड को देखने के लिए जो स्थानीय फ़ाइलों संशोधित किया गया है की जाँच करता है कि एक पृष्ठभूमि टाइमर पर चलाने के लिए लगता है, और अपनी सुंदर अव्यक्त। कभी-कभी Xcode के लिए संशोधित के रूप में फ़ाइल दिखाने में 5 मिनट लगते हैं। वही बात भी अधिक अतिरंजित w/r/t रिमोट संशोधनों है।
  • कभी-कभी जब आप फ़ाइल का नाम बदलते या हटाते हैं तो स्रोत नियंत्रण के तहत नहीं है, तो एक संवाद दिखाई देगा, "क्या आप इस फ़ाइल को एसवीएन में भी [नाम बदलें/हटाएं] चाहते हैं?" और विकल्प "हां" या "रद्द करें" हैं। आप हां से बाहर हां बाहर केवल एक अच्छी तरह से योग्य एसवीएन त्रुटि के साथ प्रस्तुत करने के लिए चुनते हैं।

कुल मिलाकर, मैं इसकी अनुशंसा करता हूं।

20

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

[2011-03-10 दिया गया है] Xcode 4 समर्थन Git के लिए कहते हैं। हम में से कई ने Mercurial समर्थन के लिए अनुरोध दायर किया है; आपको भी चाहिए, अगर आप इसे चाहते हैं।

+2

मैं एक Git जीयूआई के लिए gitX (http://gitx.frim.nl/) के बारे में सुना है (लेकिन अभी तक की कोशिश की नहीं)। – mouviciel

+3

Mercurial के लिए भी Murky (https://bitbucket.org/snej/murky/) है। –

+0

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

3

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

5

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

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

+0

बस शीर्ष स्तर निर्देशिका जोड़ें, फिर संग्रह से बिल्ड निर्देशिका हटा दें। यह कष्टप्रद है, लेकिन चारों ओर घूमना बहुत आसान है। – kubi

+1

मैं प्रोजेक्ट बनाता हूं, इसे पूरी तरह साफ़ करता हूं (बिल्ड निर्देशिकाएं हटाएं), फिर मेरा पहला प्रतिबद्ध करें (जोड़ें या जो भी हो)। बाद में, जब निर्माण निर्देशिका बनाई जाती है, तो svn बस इसे अनदेखा करता है (इसके आगे? रखता है) क्योंकि मैंने इसे कभी नहीं जोड़ा है। –

0

मर्क्युरियल (Git की तरह) "वितरित" है और शायद अधिक आधुनिक रूप में और ऊपर-और-माना svn से आ रहा है (लेकिन कम स्थापित)।

एचजी -m प्रतिबद्ध के रूप में पाया, "Xcode ऑटो प्रतिबद्ध" XCode निर्माण की एक "रन स्क्रिप्ट" चरण के भाग के रूप

: आप तेज का उपयोग करने के स्वतः चेक चाहते हैं, आप लाइन में जोड़ सकते हैं : http://jasonfharris.com/machg/

यह मुफ़्त है और बहुत अच्छा IMHO है: परियोजना> नई बिल्ड चरण> नई भागो स्क्रिप्ट चरण

+6

ओह, बुरी सलाह। हर बार जब आपका कोड बनाता है तो जांचना बदबूदार है; चेकइन एक ही फाइल तक सीमित होंगे (फाइल ग्रुपिंग चेकइन के अर्थ के रूप में एक प्राकृतिक संकेत देता है), जिसके अलावा प्रत्येक कोड परिवर्तन जो बनाता है वह रखने योग्य नहीं है! अंत में, आप एक ही लॉग एंट्री के साथ हजारों चेकइन के साथ समाप्त हो जाएंगे, जिससे सड़क के नीचे एक विशिष्ट बदलाव खोजना मुश्किल हो जाएगा। -1 आत्मा में, हालांकि मुझे वास्तव में आपको कम करने के लिए पर्याप्त अर्थ नहीं लगता है - आपने एचजी की सिफारिश की थी, आखिरकार। –

+0

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

14

वहाँ मर्क्युरियल के लिए एक अच्छी जीयूआई दृश्यपटल मैक पर MacHG कहा जाता है का निर्माण।

+3

इस सवाल को पहली बार पोस्ट किया गया था, और यह बहुत अच्छा है कि ऐप्पल एक्सकोड 4 के साथ एससीएम एकीकरण में अधिक प्रयास कर रहा है, जबकि मैकएचजी अभी भी हर दूसरे दृश्य एससीएम क्लाइंट को धड़कता है जिसे मैंने आज-एक्सकोड 4 देव पूर्वावलोकन 2 शामिल किया है नीचे। तो ग्रेगोर शायद अब तक एसवीएन के साथ घिरा हुआ महसूस कर रहा है, लेकिन किसी भी नए आने वालों को Mercurial (यानी, एचजी) + मैकएचजी + http://bitbucket.org (यदि आपको जिथब के बराबर की आवश्यकता है) के संयोजन का प्रयास करना चाहिए। – clozach

+0

सेकेंडेड! मैं वितरित संस्करण नियंत्रण के साथ भी प्रयोग कर रहा हूं, और हाल ही में मैकएचजी की खोज की है। यह बहुत अच्छा है, जब मैं विंडोज पर काम कर रहा हूं तो मुझे याद आती है! (और यह TortoiseHG के साथ भी है।) –

2

आप ओएस एक्स पर मर्क्युरियल का उपयोग करने में रुचि रखते हैं, SourceTree कोशिश, यह मुफ़्त नहीं है, लेकिन यह प्रतिस्पर्धात्मक कीमत है और एक बहुत ही पॉलिश मैक ओएस महसूस किया है। मैं इसे पिछले कुछ महीनों के लिए निजी परियोजनाओं के लिए उपयोग कर रहा हूं और इसे सहज और उचित रूप से मजबूत पाया।

यह मैक App स्टोर के माध्यम से उपलब्ध है और Git और मर्क्युरियल का समर्थन करता है। अधिक जानकारी के साथ उनके पास पर एक वेबसाइट है।

+1

एटलसियन ने इसे खरीदा है, यह मुफ्त में है। (उन्होंने कुछ बार उल्लेख किया है कि यह "सीमित समय के लिए" है, लेकिन मैंने उस विशिष्ट तारीख का कोई उल्लेख नहीं देखा है जिस पर वह समय समाप्त हो जाएगा।) –

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