मुझे "SVN for Git Users" संसाधन कहां मिलेंगे? [बन्द है]


18

इसलिए मैंने एक नौकरी ली जहां फर्म एसवीएन का उपयोग करता है (लेकिन भविष्य में कुछ समय के लिए जीआईटी के लिए आगे बढ़ेगा)। समस्या यह है कि मैं SVN नहीं जानता। मैंने कई Google क्वेरीज़ आज़माई हैं और सभी मुझे कभी भी मिल सकते हैं SVN-> Git tutorials, "Why is Git better than SVN" ब्लॉग्स, और एक विशेष "चीट शीट" जो (कुछ) तुलनीय कमांड देता है ...

एसवीएन पर ओ'रेली पुस्तक को पढ़ने के लिए लघु, गीट उपयोगकर्ताओं के लिए एसवीएन को संक्षिप्त (लेकिन बहुत संक्षिप्त नहीं ) निर्देश क्या हैं ?


3
संक्षेप में: a) कोई इंडेक्स नहीं है, b) svn up = git pull, c) svn प्रतिबद्ध = git कमिट && git पुश d) शाखाएं निर्देशिकाओं द्वारा अनुकरण की जाती हैं ... ;-)
johannes

1
मुझे यकीन नहीं है कि मैं इस विषय पर और कैसे बना सकता हूं ...
Agent154

5
बिल्कुल नहीं। किसी भी चीज़ के आगे पी.एस.ई.
जेन्सजी

@ Agent154 हमारे लिए भीड़-भाड़ वाले सर्च इंजन बनने के लिए न कहें। जो समस्या आपको हो रही है, उसे पहचानें - समस्या यह नहीं है कि "मुझे svn पर चीजें कहां मिलेंगी" "मैं कुछ करने की कोशिश कर रहा हूं, और मैं यह पता नहीं लगा सकता कि यह कैसे करना है।" यदि वह कुछ 'svn' कमांड के लिए विशिष्ट है और आप इसे लिखने के तरीके पर काम कर रहे हैं, तो स्टैक ओवरफ्लो पर पूछें। यदि वह कुछ svn के वर्कफ़्लो और संगठन के बारे में है (कब शाखा में, कब विलय करना है, अन्य डेवलपर्स के साथ कैसे काम करना है) - तो इसे यहाँ से पूछें।

2
मुझे लगता है कि पहचानी गई समस्या संसाधनों की कमी है, जो दूरस्थ रूप से आसानी से उपलब्ध है, एसवीएन को एक जीआईटी उपयोगकर्ता के रूप में समझने के लिए। सच कहूँ तो, मैं इस सुपर उपयोगी पर एक चर्चा पाऊंगा, जिसके बाद Google / DuckDuckGo के कई पन्नों के माध्यम से डाला गया कि ओपी ने जो उल्लेख किया, उसके अलावा और कुछ भी नहीं मिला।
पैराग्राफर

जवाबों:


8

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

2 मुख्य अंतर हैं:

  • प्रतिबद्ध = केंद्रीय रेपो के लिए धक्का। कोई छूट या स्थानीय प्रतिबद्धता नहीं है, कोई भी खींचतान नहीं है।
  • ब्रांचिंग डायरेक्टरी द्वारा होती है। एक निर्देशिका संरचना के रूप में पूरे रेपो के बारे में सोचने के लिए सर्वश्रेष्ठ है, ब्रांचिंग कॉपी-ऑन-राइट सेमेंटिक्स के साथ एक सिमलिंक बनाने जैसा है। जबकि git में आप पूरे रेपो को ब्रांच करते हैं और उनके बीच स्विच करते हैं इसलिए नई ब्रांच आपकी वर्किंग कॉपी 'ओवरले' करती है, SVN के साथ आप अपने रेपो के टुकड़ों को स्वैप कर सकते हैं। आम तौर पर लोग एक शीर्ष-स्तरीय फ़ोल्डर (आमतौर पर शाखाएं) कहते हैं, इसलिए स्विचिंग बहुत अधिक हो जाती है जैसे कि गिट की 'ओवरले' कार्य करने की शैली।

ब्रांचिंग तुच्छ है, मर्जिंग कहीं भी नहीं है क्योंकि डीवीसीएस एपोलॉजिस्ट बाहर करना चाहते हैं, खासकर यदि आप शीर्ष स्तर के फ़ोल्डरों के "मानक" तिकड़ी (ट्रंक, शाखाएं और टैग कहा जाता है) से चिपके रहते हैं।

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

कुछ बिट्स हैं जो गिट के रूप में अच्छे नहीं हैं, खूंखार पेड़ संघर्ष मन में आता है - जहां आपके पास निर्देशिका स्तर पर संघर्ष होता है (यानी किसी व्यक्ति ने आपके द्वारा संपादित की गई फ़ाइल को हटा दिया है)

यदि आप विंडोज पर हैं, तो TortoiseSVN का उपयोग करें। यह प्रमुख रूप से चट्टानों।


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

1
मैंने वृक्ष संघर्ष मुद्दे का उल्लेख किया है ... इस तरह की स्थिति अन्य scms के लिए एक समस्या है, हालांकि मैं समझता हूं कि git का पता लगाने के लिए एक heuristic का उपयोग करता है यदि स्थानांतरित फ़ाइल एक ही है, तो यह अभी भी गलत हो सकता है यदि परिवर्तन महत्वपूर्ण हैं ( उदाहरण के लिए फ़ाइल को 2 में विभाजित किया जा रहा है)।
gbjbaanb

पेड़ के परिवर्तनों का पता लगाने के लिए Git को सांख्यिकी की आवश्यकता नहीं है - इसके लिए उपयोगकर्ता को फ़ाइल को स्थानांतरित करने की आवश्यकता होती है git mv। एसवीएन है svn move, लेकिन चूंकि एसवीएन में ब्रांचिंग और मर्जिंग एक हैक की तरह है, मुझे विश्वास नहीं होता कि यह स्वचालित रूप से पेड़ संघर्षों को हल कर सकता है जैसे कि जीआईटी करता है ...
ईडन आर्ये

3
@IdanArye git mvको add + remove के रूप में लागू किया गया है। git यह निर्धारित करने के लिए चालन का उपयोग करता है कि क्या कोई चाल या कॉपी एक कमिट के दौरान हुई थी (मुझे लगता है कि डिफ़ॉल्ट है, "फ़ाइल का 80% + समान है?")
इज़काता

3

यदि संभव हो तो git svn का प्रयोग करें। मैं आपकी स्थिति में हूं और आधे साल की हताशा के बाद मैंने svit को बदल दिया और तब से खुश हूं।

Git svn आपको स्थानीय रूप से रिपॉजिटरी का उपयोग करने की सुविधा देता है और SVN सर्वर को कमिट करता है, जिसके git svn rebaseबाद आपके स्थानीय बदलावों को तोड़फोड़ ट्रंक पर हैंडल git svn dcommitकरता है और फिर जो रीबेड किए गए कमिट करता है।

शायद यह उन्नत तोड़फोड़ के उपयोग के लिए इष्टतम नहीं है, लेकिन चूंकि आप स्थानीय रूप से गिट का उपयोग कर रहे हैं, सब कुछ ठीक है।

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

डिस्क्लेमर : मुझे नहीं पता कि जब आप सबवर्सन ब्रांच बनाना चाहते हैं तो स्थिति कैसी है, आदि मैंने जिन टीमों के साथ काम किया है, उन्होंने ब्रांच्स का इस्तेमाल नहीं किया (सिर्फ मुझे लोकल गिट ब्रांच)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.