2011-10-15 15 views
7

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

  1. SVN भंडार के लिए एक Git दर्पण:

    सेटअप मैं कल्पना इन पंक्तियों के साथ कुछ न कुछ है। इस पर मास्टर शाखा svn पर ट्रंक के साथ सिंक में है।

  2. प्रत्येक सुविधा के लिए एक विषय शाखा बनाई गई है। यह गेरिट से जुड़ा हुआ है, जिस पर समीक्षा होती है। एक बार परिवर्तन स्वीकृत हो जाने के बाद, गेरिट विषय शाखा वापस मास्टर विलीन हो जाता है।

  3. ब्राउज़र पर रिपोजिटरी देखने के लिए एक gitweb, या इसी तरह के वेब अनुप्रयोग।

  4. ट्रंक के अलावा उपversण पर अन्य शाखाओं के लिए एक समान प्रक्रिया।

अनिवार्य रूप से, मैं चाहता हूं कि मैं केवल अपने स्थानीय गिट क्लोन और गेरिट वेबएप के साथ बातचीत करूं; एसवीएन में समीक्षा किए गए परिवर्तनों को वापस धक्का देना स्वचालित रूप से होना चाहिए। मैं इस तरह कुछ स्थापित करने के बारे में कैसे जा सकता हूं?

+0

संघर्ष है कि हो सकता है जब परिवर्तन वापस धक्का सबवर्सन अप करने के लिए के साथ कौन निपटेगा: नीचे रन बंद से पहले तुल्यकालन को रोकने के लिए? –

+0

@ ग्रेग हेगिल अहम, मुझे लगता है कि जब गेरिट मास्टर शाखा में परिवर्तन को मर्ज करने का प्रयास करता है, तो यह असफल होना चाहिए। :-) –

+0

हे, मैं कुछ ऐसा करने की कोशिश कर रहा हूं, हालांकि मुझे केवल अपनी गिट शाखाओं को एसवीएन शाखाओं में परिवर्तित किए बिना बैकअप लेने की आवश्यकता है। जब तक मैंने देखा कि मैं सर्वर संदर्भ की शुरुआत में ssh: // डालना भूल गया था, तब तक 'गिट पुश' के लिए बार-बार मेरे पासवर्ड से पूछा जाने वाला बहुत उलझन में! –

उत्तर

2

यह एक Git दर्पण है कि भंडार के साथ सिंक में SVN

अपने SVN भंडार में स्थापित SubGit सेटअप करने के लिए संभव है:

$ subgit install path/to/svn/repository 

फिर जुड़ा हुआ Git भंडार बनाया (पथ के लिए सिर्फ सेटअप का उपयोग/अपाचे या जो कुछ भी उपयोग कर/svn/repository/.git)। उस गिट भंडार के लिए प्रत्येक धक्का का अनुवाद एसवीएन संशोधन और इसके विपरीत किया जाएगा।

तो आप गेरिट में लिंक्ड गिट रिपॉजिटरी का उपयोग कर सकते हैं और आपके लिए टीम (जैसे कि एसवीएन कभी अस्तित्व में नहीं है)। उसके बाद आप एसवीएन भंडार बंद कर सकते हैं (या उपयोग जारी रखें)।

$ subgit uninstall path/to/svn/repository 
6

दुर्भाग्यवश यह सब स्वचालित रूप से करना संभव नहीं है (कम से कम, बहुत सारे काम के बिना नहीं)। यहाँ कुछ कदम है जो आप प्राप्त कर सकते हैं करीब हैं:

  1. Gerrit सर्वर
  2. एक SVN हुक या एक आवधिक कार्य जो SVN से लाए जाने और अपना Git क्लोन करने के लिए धक्का होगा बनाएं पर अपना Git क्लोन सेट करें
  3. Gerrit एक अंतर्निहित gitweb के संस्करण है, तो आप वहाँ
  4. Gerrit सर्वर पर कवर कर रहे हैं, बनाने के एक change merged hook जो SVN

ग्रेग की तरह ऊपर उल्लेख किया है, करने के लिए वापस आ जाएगी जब चरण 4 में विफल रहता है चीजों Wil मैं मुश्किल हो। आपको svn से मिलान करने और अपना परिवर्तन दोबारा सबमिट करने के लिए गेरिट में गिट रिपॉजिटरी को रीसेट करना होगा। यह बहुत आसान होगा यदि आप अपनी बाकी टीम को svn ड्रॉप करने और गिट/गेरिट का उपयोग करने के लिए मनाते हैं :-)

शुभकामनाएँ!

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