2009-02-11 19 views
5

रेल संस्करण ऐप के लिए मुझे किस संस्करण नियंत्रण प्रणाली का उपयोग करना चाहिए: गिट या एसवीएन?रेल ऐप के लिए गिट या एसवीएन?

यहाँ पर विचार करने के लिए कुछ कारक हैं:

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

संपादित करें: प्रतिक्रियाएं अब तक के लिए धन्यवाद। ऐसा लगता है जैसे गिट थोड़ा अधिक अनुकूल है। क्या इसमें कोई एसएसएच कार्यक्षमता है?

+0

एसवीएन या गिट का उपयोग करने के निर्णय के साथ रेल को क्या करना है? – Robert

+2

रेल समुदाय गिट बैंडवागन पर कूद गया है, और अधिकांश रेल डेवलपर्स अब गिट का उपयोग कर रहे हैं। –

+0

इसमें एसएसएच समर्थन है, साथ ही साथ कई अन्य: http://www.kernel.org/pub/software/scm/git/docs/git-pull.html#URLS – sebnow

उत्तर

12

मैं कहूंगा कि गिट के लिए जाना है। अधिकतर क्योंकि मैं पक्षपाती हूं, लेकिन यह भी कि आपको गिट के साथ किसी भी प्रकार का सर्वर सेट करने की आवश्यकता नहीं है, आप बस git init और जाएं। Git is generally just better, यह एसवीएन की तुलना में अधिक लचीलापन और शक्ति प्रदान करता है।

संपादित करें: यह Why is Git better than Subversion, या कम से कम प्रासंगिक का एक डुप्लिकेट है।

संपादित 2: गिट में संचार के 3 प्राथमिक तरीके हैं, गिट प्रोटोकॉल, एसएसएच और HTTP। गीथब "पुश एक्सेस" के लिए एसएसएच का उपयोग करता है, उदाहरण के लिए, [email protected]/user/repo.git।

+1

आपको सर्वर सेट करने की आवश्यकता नहीं है svn का उपयोग करने के लिए या तो यदि आप एकमात्र डेवलपर हैं, और आप ssh पर भी svn का उपयोग कर सकते हैं। और आप हमेशा git svn का उपयोग कर दोनों सिस्टमों का सर्वश्रेष्ठ प्राप्त कर सकते हैं :) – bluebrother

+0

जब तक ऐसा कुछ नहीं है, मुझे पता नहीं है, तो आपको सबवर्सन के साथ एक रिपॉजिटरी शुरू करने के लिए सर्वर सेट करना होगा। आपको 'svnadmin create'' afaik के साथ "डेटाबेस" बनाना होगा। मैं कहूंगा कि गिट-एसवीएन का उपयोग करने से आप सीमित तरीके से गिट का उपयोग करने की क्षमता सीमित कर सकते हैं। यदि आप एसवीएन का उपयोग करते हैं, तो बस एसवीएन का उपयोग करें, और इसके विपरीत। – sebnow

5

एक एकल डेवलपर के रूप में जो पहले से ही एसवीएन के साथ familar है - यदि आप संभवतः एसवीएन के रूप में उत्पादक बनना चाहते हैं।

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

+1

मैं तर्क दूंगा कि कोई भी गिट के साथ कहीं अधिक उत्पादक हो सकता है। मैं सावधान रहूंगा कि दिन 1 पर दिन 1 बनाम उत्पादकता पर उत्पादकता को भ्रमित न करें। – Dustin

+0

यदि उत्पादक द्वारा, आपका मतलब है "प्रत्येक ऑपरेशन द्वारा आवश्यक svn के धीमे नेटवर्क स्थानान्तरण के लिए प्रतीक्षा", फिर हाँ ... svn उत्पादक है। – jrockway

+0

आप svn पर कितनी बार प्रतीक्षा करते हैं? यदि svn की स्थानांतरण गति वास्तव में आपकी उत्पादकता को काफी नुकसान पहुंचा रही है तो आपको मल्टीटास्क सीखना चाहिए। –

1

चूंकि आप अकेले हैं और इसे दूरस्थ स्थान पर रखना चाहते हैं: एसवीएन, लेकिन आपको गिट भी सीखना/उपयोग करना चाहिए। आप दोनों को गठबंधन भी कर सकते हैं, रिमोट के लिए स्थानीय रूप से और एसवीएन का उपयोग करें ..

+0

परेशान क्यों? गिट में दूरस्थ/केंद्रीय भंडार भी हो सकते हैं। गिट का उपयोग क्यों करें यदि आप अंत में सबवर्सन को सीमित कर देते हैं? – sebnow

+0

ठीक है, मेरे मामले में, हम एक विंडोज सबवर्जन सर्वर का उपयोग करते हैं और विंडोज़ के लिए कोई स्थिर गिट डेमॉन/सर्वर नहीं है। मैं मानता हूं कि गिट एक बेहतर विकल्प है लेकिन यह मुख्यधारा के रूप में नहीं है क्योंकि सबवर्सन है ... यह सब उसकी स्थिति पर निर्भर करता है;) – Tuxified

+0

यह सच है। मैक/लिनक्स उपयोगकर्ता होने के नाते मैं भूल जाता हूं कि गिट विंडोज के साथ संगत नहीं है। ओएस स्विच करने के लिए और भी अधिक कारण, क्या मैं सही हूँ? : पी – sebnow

1

शायद कुछ प्रकार के संस्करण नियंत्रण का उपयोग करना एक अच्छा विचार है। आपके कोड के रिमोट बैकअप रखना शायद एक अच्छा विचार है।

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

यदि आप एक वितरित विकास समूह में थे तो मैं सुझाव दूंगा कि गिट अधिक उपयुक्त हो सकता है क्योंकि इसके विशिष्ट डिजाइन लक्ष्यों में से एक उस स्थिति के लिए था।

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

अधिकतर, हालांकि वे दोनों एक समान काम करते हैं और इसे अच्छी तरह से करते हैं।

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

अन्यथा मैं कहूंगा कि आपको svn से चिपकना चाहिए।

4

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

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

0

मैं कहूंगा कि कोई विशेष अंतर नहीं है।

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

1

यदि आपके पास गिट सीखने का दिन है, तो गिट सीखें। इसमें एसवीएन की सभी कार्यक्षमताएं हैं, साथ ही सस्ते ब्रांचिंग/विलय, स्थानीय प्रतिबद्धता, और वितरित विकास का विकल्प भी है।

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

0

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

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

0

मुझे गिट पसंद था, लेकिन हाल ही में इसे Mercurial पर स्विच किया गया है। यह गिट के रूप में बिल्कुल वही वाक्यविन्यास है, लेकिन पाइथन में लिखा गया है, और बॉक्स के बाहर बहुत अच्छी घंटियां और सीटी हैं, जैसे कि वेब सर्वर जैसे काम करने की दृश्य ट्रैकिंग।

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

3

मैंने टिप्पणियों में जवाब दिया होगा लेकिन मैं अभी तक नहीं कर सकता।

उन लोगों के लिए जो गिट विंडोज के साथ काम करते हैं। यदि आपको msys के संस्करण को पसंद नहीं है, तो TortoiseGit पहले से ही उपयोग योग्य है।

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