2011-09-02 5 views
7

मैंने लोगों को विलय करने के लिए गिट-एसवीएन का उपयोग करने और इसे svn पर वापस करने का सुझाव दिया है।मैं ट्रंक से परिवर्तनों को svn में किसी शाखा में बदलने के लिए गिट-एसवीएन का उपयोग कैसे करूं?

मैं चरण मार्गदर्शिका द्वारा एक अच्छा कदम ढूंढ रहा हूं।

  • क्या यह समस्या के लायक है या क्या मुझे इसे करने के लिए svn का उपयोग करना चाहिए।
  • क्या लोग देखेंगे कि मैंने गिट का उपयोग किया है और क्या svn में विलय के बारे में कोई मेटा डेटा है?
  • क्या मैं ट्रंक का एक क्लोन और 1 शाखा चुन सकता हूं?
  • क्या मुझे एक पूर्ण क्लोन चाहिए या क्या मैं इसे उस बिंदु से आयात कर सकता हूं जहां शाखा बनाई गई थी?
+0

यह इसके लायक हो सकता है और यह दिखाई नहीं देगा कि आपने svn के बजाय गिट का उपयोग किया था। यद्यपि आप 'गिट रिबेस' का उपयोग कैसे करते हैं, इसके बारे में बेहद सावधान रहें। यह वास्तव में svn इतिहास की गड़बड़ी कर सकता है। –

+0

किस प्रकार का विलय? चयनित प्रतिबद्धता/संशोधन? या यह एक फीचर शाखा है जिसे आप ट्रंक से काम करने के साथ अद्यतित रखना चाहते हैं, जो ट्रंक पर वापस फिर से जुड़ना चाहते हैं? –

+0

एक चरण-दर-चरण मार्गदर्शिका के लिए: http://myhumblecorner.wordpress.com/2011/08/25/git-svn-cheatsheet-for-git-rebels-in-an-svn-workplace/ 'गिट चेकआउट <मर्ज-टू शाखा>; गिट मर्ज - स्क्वैश <शाखा से विलय>; गिट प्रतिबद्ध; git svn dcommit # --squash कुंजी है –

उत्तर

3

पर करने की सलाह होगा इसके लायक है परेशानी या मुझे बस ऐसा करने के लिए svn का उपयोग करना चाहिए।

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

क्या लोग देखेंगे कि मैंने गिट का उपयोग किया है और क्या एसवीएन में विलय के बारे में कोई मेटा डेटा है?

नहीं, यह ट्रंक पर एक नई प्रतिबद्धता की तरह दिखता है।

क्या मैं ट्रंक का एक क्लोन और 1 शाखा चुन सकता हूं?

यदि आपका मतलब है कि आपके गिट-एसवीएन को एक नए गिट रेपो में क्लोन करें, तो हाँ। बस गिट-एसवीएन क्लोन करें और अपर्याप्त शाखाएं हटाएं, या क्लोन करने से पहले सीधे गिट-एसवीएन रेपो में करें।

यहां एक पोस्ट है convert an SVN repo to a git one कैसे। मुझे लगता है कि इसमें से अधिकांश इस स्थिति में लागू होंगे।

मैं एक पूर्ण क्लोन की जरूरत है या मैं इसे बिंदु है जहां शाखा बनाया गया था से आयात कर सकते हैं?

गिट क्लोन आमतौर पर पूर्ण क्लोन होंगे, जब तक कि आप --depth विकल्प का उपयोग न करें। यदि आप पिछले इतिहास को फेंकना चाहते हैं, तो आप हमेशा सभी कामों को पुराने में स्क्वैश कर सकते हैं, या बस .git निर्देशिका हटाएं और एक नया रेपो डालें।

+2

गिट आंशिक क्लोन देख सकता है http://stackoverflow.com/questions/747075/how-to-git-svn-clone-the-last-n-revisions-from-a-subversion-repository – hdorio

+0

@Doud, धन्यवाद संशोधन। – cmcginty

1

मैं इस सुझाव से लोगों को कुछ लेख पढ़ा है, लेकिन मैं इसे केवल तभी उस Git और SVN एक ही कोड के लिए दोनों के साथ काम किया जाना चाहिए (Git के साथ स्थानीय रेपो और SVN के साथ रेपो मेजबानी) लगता है। मैं सिर्फ अपने VCS से चिपके और BeyondCompare या बहुरूपदर्शक की तरह एक उचित मर्ज उपकरण प्राप्त

Git-SVN के बारे में एक छोटा सा ट्यूटोरियल पाया जा सकता है

http://flavio.castelli.name/howto_use_git_with_svn

+0

+1 यह एक अच्छा ब्लॉग पोस्ट है लेकिन इसमें विलय शामिल नहीं है। –

10

मैंने इस पोस्ट में बहुत सफलता के साथ निर्देश का उपयोग किया है।http://justaddwater.dk/2009/03/09/using-git-for-svn-repositories-workflow/

मैं शाखाओं के बीच विलय करने के लिए गिट का उपयोग करता हूं और फिर उन्हें svn repo पर प्रतिबद्ध करता हूं। यह svn के लिए विलय प्रक्रिया का पालन नहीं करता है और इसलिए यह अन्य उपयोगकर्ताओं के लिए समस्या हो सकती है। svn: विलय संपत्ति सेट नहीं है

git-svn svn repo में कोई सबूत नहीं छोड़ता है कि आप git-svn का उपयोग कर रहे हैं।

+1

+1 अब तक का सबसे अच्छा जवाब। और क्योंकि आप डेव हैं। –

+0

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

+0

यदि आपको यह पता चलता है, तो आपने गिट क्लोन में -s विकल्प को याद किया है। – boutta

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