2011-01-10 17 views
6

का उपयोग करके विकेन्द्रीकृत विकास हमारे पास 2-3 लोगों की 2-3 छोटी टीम हैं। हम सभी स्थानीय भंडार के लिए स्थानीय और svn के लिए गिट का उपयोग करते हैं और गिट-एसवीएन को सिंक मिला है। यह हर समय काम करता है सिवाय इसके कि जब हम टीम के बीच अपना कोड साझा करना चाहते हैं।गिट और गीट-एसवीएन

इसलिए हमने गिट खींचने की कोशिश की है, इससे बहुत सारे संघर्ष पैदा होते हैं और यह पता नहीं चलता है कि हम एक ही पेड़ पर हैं। यह सभी परिवर्तनों को प्राप्त करता है (क्लोन के समान खींचें) बेशक मैं पूर्ण रेपो क्लोन नहीं करना चाहता हूं। हर बार जब मैं साझा करना चाहता हूं।

कृपया एक बेहतर प्रवाह का सुझाव दें।

  1. हम केंद्रीय svn से छुटकारा नहीं पा सकते हैं।
  2. हम हर बार क्लोन नहीं कर सकते हैं।

उत्तर

3

एक टीम सदस्य को 'गिट हब' के रूप में नामांकित करें, वह एसवीएन सर्वर के साथ सिंक करता है, अन्य टीम के सदस्य सीधे एसवीएन सर्वर की बजाय उनके साथ बातचीत करते हैं। इस तरह गिट को पता चलेगा कि सभी टीम के सदस्य एक ही पेड़ पर हैं।

+0

धन्यवाद, लेकिन यह विकेंद्रीकृत विकास कैसे है। – CantGetANick

+0

आपके पास केंद्रीय एसवीएन सर्वर है ...इसलिए, लेकिन आप एक दूसरे के अपडेट खींचने में सक्षम होंगे, जब तक कि केवल एक व्यक्ति एसवीएन सर्वर के साथ इंटरैक्ट करता है। एसवीएन सर्वर को 'गीथब' या अपने स्वयं के गिट सर्वर के साथ बदलने का एक बेहतर समाधान होगा, लेकिन जैसा कि आप अपने प्रश्न में कहते हैं, आप ऐसा नहीं कर सकते हैं। –

2

क्रिस हुआंग-लीवर के उत्तर में जोड़ने के लिए, आपको svn repo के साथ डॉकिट/रीबेस करने के लिए केंद्रीय बिंदु की आवश्यकता है।
कि Git की "विकेन्द्रीकृत" पहलू से इनकार नहीं है, यह बस हर कोई अपने दूरदराज के खजाने में से एक, एक संदर्भ के "केंद्रीय" रेपो (यानी एक SVN के साथ सिंक)

वहाँ के रूप में, के साथ काम करने की अनुमति देता है क्लोन करने के लिए बोझ से बचने का कोई आसान तरीका नहीं है (संभावित रूप से विशाल) svn repo से आ रहा है, जिसके परिणामस्वरूप Git repo cannot be split into submodules है।
कि कम से कम एक "समाधान" है, जो शामिल होगा छोड़ देता है:

  • मुख्य एक के बगल अलग Git बनाने (जो SVN के साथ सिंक)
  • मुख्य रेपो
  • करने के लिए उन पैच लागू करने से निर्यात पैच प्रत्येक गिट रेपो मुख्य गिट रेपो के भीतर एक परियोजना का प्रतिनिधित्व करता है।

यह स्पष्ट रूप से की जरूरत है पैच आने के साथ स्वचालित करने के लिए किया जाएगा, लेकिन एक टीम अपने "केंद्रीय" रेपो के रूप में उन Git रेपोस की एक पर ध्यान केंद्रित करेंगे, और SVN तुल्यकालन के प्रभारी व्यक्ति को अपडेट करेंगे उन छोटे Git रेपोस मुख्य (और छिपा) गिट < => एसवीएन रेपो से।

+0

ठीक है, मैं यहाँ बिंदु प्राप्त कर रहा हूँ। लेकिन मैं गिट और गिट-एसवीएन से बहुत संतुष्ट हूं। टीमों में कुछ लोग हैं जो गिट जाने के लिए तैयार नहीं हैं (भगवान उनकी मदद करते हैं)। तो मैं एक ऐसे तरीके की तलाश में हूं जिसके द्वारा हम आसानी से खींच या धक्का देकर कोड बी/डब्ल्यू साझा कर सकते हैं। वर्तमान में हम गिट प्रारूप-पैच का उपयोग करते हैं जो बिल्कुल साफ नहीं है। – CantGetANick

3

SubGit आपके लिए एक शानदार विकल्प प्रतीत होता है।

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

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

सबगिट बंद स्रोत सॉफ्टवेयर है लेकिन यह ओपन-सोर्स प्रोजेक्ट्स के लिए नि: शुल्क है। अधिक जानकारी के लिए कृपया SubGit documenation देखें।

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