चेतावनी: इस पोस्ट के बाद से मुझे मर्क्यूरियल मिला है और यह SVN से बहुत बेहतर है। इसलिए यह पोस्ट प्रो SVN टिप्पणियों और सामान्य एंटी-डीवीसी के साथ थोड़ा पुराना है, लेकिन एंटी-गिट सामान अभी भी प्रासंगिक है
मैं Git से ज्यादा SVN का प्रशंसक हूं ।
क्यूं कर? क्योंकि SVN किसी एकल डेवलपर या छोटी टीम के लिए बहुत आसान था, और git (विशेष रूप से msysgit) ने मेरे मुंह में खराब स्वाद छोड़ दिया।
जब मैं एक छोटी सी दुकान पर नजरबंद था, तो मुझे विंडोज पर गिट के लिए पेश किया गया था। मैंने तुरंत ध्यान दिया कि जीथब के साथ काम करने के लिए उसे कितना काम करना पड़ा। सबसे पहले, मुझे एक ssh निजी कुंजी जेनरेट करनी थी, गिथब में सार्वजनिक कुंजी पेस्ट करना था, फिर पेजेंट लाना और अपनी निजी कुंजी को हर बार खोलना था, जिसे मैं पुश करना चाहता था, जो कि बहुत कष्टप्रद था।
और मुझे वास्तव में कभी पसंद नहीं आया कि मैं पूरे भंडार को नीचे खींच रहा हूं। मैं यह स्वीकार करूंगा कि मैंने कभी भी किसी बड़ी चीज के साथ काम नहीं किया, लेकिन मुझे GDE में KDE के रिपॉजिटरी को डाउनलोड करने से डरना होगा अगर पूरे रेपो और इसके संशोधन मेरे HD पर हैं।
फिर एक प्रतिबद्ध बनाने के लिए भ्रमित करने वाली प्रक्रिया थी। TMK, मुझे पहले "स्टेज" करना था सभी फाइलें जो मैं कमिट करना चाहता था (जो तब चूकी जब आपके पास कई फाइलें थीं, मुझे सब कुछ स्टेज करने के लिए मैनुअल कमांड खोजने में थोड़ा समय लगा), फिर कमिट करें, फिर मुख्य पर पुश करें रेपो (एक अलग ऑपरेशन क्यों है?)।
आपके पास बहुत सहायक डेटा नहीं है! ओह देखो, यह 14f74433245ae17aeeaa पेड़ का हिस्सा 2167a4934d0a4a7db0de और पैरेंट d7042abb4821d3faf600 है। नरक का मतलब क्या है? मुझे बहुत जल्दी चीजों का पता लगाने में सक्षम होना चाहिए और कुछ अजीब प्रलेखन से परामर्श नहीं करना चाहिए।
दस्तावेज़ीकरण की बात करें, तो कम से कम जब मैं इसका उपयोग कर रहा था, ऐसा लग रहा था कि सब कुछ लिनक्स मैन फ़ाइल प्रारूप में था, IE मुझे भ्रमित और बेकार कर रहा था। मैं शायद ही कभी डॉक्स में ज्यादा मदद पा सका और बस गूगल का सहारा लिया।
और कमिट्स के साथ, एक चीज जो मुझे पसंद नहीं थी वह थी संस्करण संख्याओं की कमी। अब मुझे पता है कि यह गिट डिजाइन के कारण है, लेकिन किसी भी सॉफ्टवेयर को एक संस्करण संख्या की आवश्यकता है। मुझे अब भी याद है कि मार्कर यह कहता है कि "बदला हुआ संस्करण 1.8.6" या कुछ इसी तरह का होगा, लेकिन आप अभी भी नंबर नहीं बना सकते हैं। मेरे पास संस्करण होने के लिए 1.8.6.5164 (अंतिम भाग संशोधन संख्या है) मुझे 1.8.6 की तुलना में बहुत अधिक बताता है और एक नोट कहता है कि कुछ मामूली बदल गया है, इसे आज़माएं
सॉफ्टवेयर विशिष्ट हो रहा है, विंडोज पर बेस प्रोग्राम एमएससिसिट है, जो एक भयानक इंटरफ़ेस है। इसने मुझ पर कुछ समय के लिए ताला लगा दिया, एक भयानक इंटरफ़ेस था, और सीएलआई-जीयूआई एकीकरण सबसे अच्छा था। मेरे चारों ओर कमांड लाइन के दीवाने गुनी से ज्यादा नफरत करते थे।
अब SVN को देखते हैं। और जब से मैं विंडोज पर हूं और एक Google खाता है, विशेष रूप से TortoiseSVN और Google कोड।
सबसे पहले, पूर्ण शेल एकीकरण को रिपॉजिटरी पर सब कुछ करने के लिए (और आपके लिए लिनक्स के लोग, खरगोशबिट्स वही काम करते हैं), कोई मुख्य जीयूआई की जरूरत नहीं है। एक रिपॉजिटरी प्राप्त करना एक चेकआउट के रूप में आसान है, किसी भी एसएसएच की जरूरत नहीं है (याद नहीं कर सकते कि क्या गिथब को एसएसएच को खींचने के लिए आवश्यक है), और कोई भी संपूर्ण रेपो + आपके पिछले सभी एचडी पर बैठे नहीं है।
कमिट करना बेहद आसान है, मुख्यतः क्योंकि एसएसएच या स्टेजिंग की आवश्यकता नहीं है। आप बस उन सभी फाइलों की जांच करें जिन्हें आप बहुत उपयोगी का उपयोग करके चाहते हैं सभी विकल्प का चयन करें कि मेरे msysgit संस्करण में उपलब्ध नहीं था, एक प्रतिबद्ध संदेश में टाइप करें, और कमिट करें। Google कोड तब आपसे आपकी लॉगिन जानकारी (जो कि ज्यादातर ग्राहक स्टोर करता है), और आपके काम की मांग करता है। सरल, आसान और कोई एसएसएच नहीं
संस्करण संख्या? कुछ आसान कोड के साथ, आप सभी चेकआउट में एक संस्करण संख्या और एक प्रतिबद्ध संख्या जोड़ सकते हैं, जिससे चीजें इतनी आसान हो जाती हैं। आपको उपयोग करने योग्य संस्करण संख्या भी मिलती है जो वास्तव में एक बदलाव दिखाती है, जैसे 1.8.6.5165 1.8.6.5164 की तुलना में नया है।
प्रलेखन? खैर, यह कहना मुश्किल है। कछुआ प्रलेखित है, लेकिन मैंने वास्तव में इतने लंबे समय तक आधिकारिक दस्तावेज का उल्लेख नहीं किया है कि मैं न्याय नहीं कर सकता। एक साधारण इंट्रो गाइड पढ़ना मेरे लिए काफी था।
विलय कुछ और है जिसकी मैं तुलना नहीं कर सकता। मुझे इसे एक बार Git में करना पड़ा था जब किसी और ने उस फ़ाइल में बदलाव किया था जिस पर मैं काम कर रहा था, लेकिन एसवीएन में कभी नहीं।
मैं किसे सलाह दूंगा? अच्छी तरह से बड़ी टीमों में, गिट के अपने फायदे हैं, मुख्य रूप से इसके गैर-रैखिक विकास चक्र में। एक अन्य परियोजना में मैंने देखा कि 4 प्रोग्रामर अलग-अलग शाखाओं में शुरू होते हैं, फिर सभी कोड को बहुत ही अजीब तरीके से मर्ज करते हैं जो किसी तरह अंतिम मास्टर शाखा में रूपांतरित हो जाते हैं। Github और msysgit के पास पूरे प्रोजेक्ट के लिए एक बहुत अच्छा विज़ुअलाइज़ेशन टूल था जो मुझे बहुत पसंद था।
एकल डेवलपर या छोटी टीम परियोजनाओं के लिए, SVN सबसे अच्छा होगा क्योंकि अधिकांश Gits सुविधाओं का उपयोग नहीं किया जाता है और आपके केवल इसके नकारात्मक भाग मिलते हैं। सादगी इतनी अच्छी चीज है