2011-03-09 16 views
6

मुझे गिट करने के लिए उपयोग किया जाता है और मुझे यह बहुत पसंद है, लेकिन मेरे क्लाइंट में से एक (अभी भी?) सबवर्सन का उपयोग कर रहा है, मैं वास्तव में अब svn के बारे में नहीं जानता, लेकिन मुझे वहां एक गिट-एसवीएन पैकेज पता है।क्या मैं गिट-एसवीएन का उपयोग कर सकता हूं और ऐसा लगता हूं कि मैं एसवीएन का उपयोग कर रहा था, अगर हां कैसे?

मुझे पता है कि svn से git के साथ एक रेपो लाने के लिए संभव है, लेकिन क्या मैं svn के बजाय गिट का उपयोग कर सकता हूं और अभी भी प्रतिबद्ध हूं, और केंद्रीय svn सर्वर पर "पुश" कर सकता हूं?

मैं गिट का उपयोग करना चाहता हूं और svn नहीं अगर मैं आपको ऐसा करने के लिए कोई ट्यूटोरियल बता सकता हूं?

धन्यवाद

संपादित करें:

मैं वास्तव में सभी प्रतिबद्ध लाने के लिए परवाह नहीं है, केवल 10/20 पिछले एक पर्याप्त होगा के रूप में एप्लिकेशन को कार्यरत अवस्था में है और है कि केवल सुधार करने के बारे में, इसलिए यदि वास्तव में इसकी आवश्यकता होती है तो मैं केवल सभी प्रतिबद्धता इतिहास लाऊंगा।

+2

"और ऐसा लगता है कि मैं एसवीएन का उपयोग कर रहा था" - यदि यह सचमुच महत्वपूर्ण है कि अन्य svn उपयोगकर्ताओं में से कोई भी नहीं जानता कि आप गिट का उपयोग कर रहे हैं, तो सावधान रहें कि आपका 'प्रतिबद्ध न हो।gitignore' फ़ाइल या उस तरह कुछ भी, और कभी भी एक बार में एक से अधिक प्रतिबद्ध 'git svn dcommit'' क्योंकि वे svn लॉग में कुछ सेकंड अलग होंगे। लेकिन इसके अलावा, आप गिट को केवल एक बहुत ही फैंसी एसवीएन क्लाइंट के रूप में सोच सकते हैं और कोई भी अंतर नहीं जान पाएगा। – MatrixFrog

उत्तर

5

git-svn गिट और एसवीएन से एक पुल प्रदान करता है। यह स्थानीय रूप से वेनिला गिट की तरह व्यवहार करेगा, लेकिन जैसे ही आप मास्टर में या अपने परिवर्तनों को धक्का देने या खींचने की कोशिश करते हैं, यह पूरी तरह से अलग हो जाता है।

पुश करने के बजाय, आप स्थानीय स्तर पर प्रतिबद्ध होने के लिए git commit का उपयोग करेंगे, और git svn dcommit अपने स्थानीय काम को एसवीएन में धक्का देने के लिए करेंगे।

गिट-एसवीएन documentation बताता है कि एसवीएन भंडार से कैसे खींचें। ध्यान दें कि यह है अत्यधिक धीमा (सामान्य गिट की तुलना में) क्योंकि यह एसवीएन से प्रत्येक संशोधन प्राप्त करता है। दस्तावेज के नीचे उदाहरण देखें।

यहाँ

यह एक विशिष्ट तरीका मैं इसे का उपयोग किया है:

  1. git svn clone http://svn.example.com/project -T trunk -b branches -t tags - URL आपके SVN रेपो है, और आप -टी, बी निर्दिष्ट करें, और आयकर स्विच में उप पथ निर्दिष्ट करने के लिए अपने एसवीएन निर्देशिका। गिट तब शाखाओं और टैगों और मास्टर के रूप में ट्रंक देखने के लिए इन एसवीएन निर्देशिकाओं का उपयोग करेगा।
  2. कुछ कोड में परिवर्तन
  3. git add... स्थानीय स्तर पर अपने परिवर्तनों को प्रतिबद्ध करने के लिए अपने परिवर्तन
  4. git commit... मंच बनाओ।
  5. git svn dcommit स्थानीय प्रतिबद्धताओं को एसवीएन में धक्का देने के लिए। प्रत्येक स्थानीय प्रतिबद्धता के लिए, गिट एसवीएन सर्वर पर इन अलग-अलग काम करेगा।
+0

मैंने आपके गिट svn क्लोन कमांड की कोशिश की, लेकिन यह कुछ भी नहीं करता है, मैंने पहले svn repo (svn के साथ) की जांच की है ऐसा लगता है कि कोई भी, ट्रंक, टैग या शाखा फ़ोल्डर नहीं है, सभी कोड रूट पर हैं, कोई भी विचार? –

+0

यह ठीक है कि मैंने किसी भी पैरामीटर को निर्दिष्ट न करके क्लोन करने के लिए हासिल किया –

+0

@EricP: यह इसे संभालने का तरीका था, हां। – vcsjones

0

यह संभव है, लेकिन मुझे लगता है कि सबसे अच्छा एक परिवर्तन संस्करण नियंत्रण एप्लिकेशन :)

SVN पाने के लिए git करने के लिए करता है (यदि आपके पास पहले से ही के बाद Git SVN निश्चित रूप से यह प्रारंभ)

है git svn fetch

अपना Git प्राप्त करने के लिए svn के लिए प्रतिबद्ध

git commit git svn dcommit

+0

मुझे नहीं लगता कि मेरा ग्राहक svn से git में माइग्रेट करने के लिए स्वीकार करेगा :) लेकिन मेरी इच्छा है: डी –

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

  • कोई संबंधित समस्या नहीं^_^