2010-03-05 10 views
8

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

के लिए सबसे अच्छा तरीका क्या है ...

  • आयात चालू परियोजना (आदर्श अलग करता/संशोधन का एक सेट के रूप में) सीवीएस में
  • अनुमति देते हैं सीवीएस में भविष्य में परिवर्तन की repeatable आयात
  • (बोनस प्रश्न - आदर्श लेकिन आवश्यक नहीं) अन्य डेवलपर्स द्वारा किसी भी सीवीएस परिवर्तन को गिट

इस समय सीवीएस में कुछ भी नहीं है, यदि यह मायने रखता है। (और अगर मेरे पास रास्ता नहीं था तो कभी भी सीवीएस में कुछ भी नहीं होगा, लेकिन मैं इसके लिए अभी अटक गया हूं!) अग्रिम धन्यवाद!

+0

Git समान एक सीवीएस सर्वर के रूप में कार्य कर सकते हैं दे सकते हैं, और मैं यकीन है कि (काफी 'Git-svn') की तरह यह भी सीवीएस से खींच कर सकते हैं। – hasen

+0

संभावित डुप्लिकेट [Mercurial या git से cvs में संशोधन इतिहास कैसे निर्यात करें?] (Http://stackoverflow.com/questions/584522/how-to-export-revision-history-from-mercurial-or-git-to -सीवीएस) – Mark

+0

धन्यवाद, उत्तर वास्तव में अच्छा है। सौभाग्य से हम अब गिट में चले गए हैं :) – rjh

उत्तर

2

जबकि मेरे पास कोई स्पष्ट सीवीएस ज्ञान नहीं है, तो मैं निम्नलिखित सेटअप का सुझाव दूंगा।

  • Work\Project.git < - Git रेपो
  • Sync\Project < - में इस फ़ोल्डर पर ..\Work\Project.git + सीवीएस संस्करण नियंत्रण मास्टर शाखा के Git क्लोन।

आप Project.git में अपने सभी Git सामान कर सकते हैं और जब आप सीवीएस में आयात करना चाहते हैं, तो आप Sync\Project पर जाएं और अपनी सिंक निर्देशिका (में परिवर्तन पुनः चलाने के लिए एक git pull कर शायद आप एक पूर्ण dir करने के लिए की जरूरत से सीवीएस में चेकआउट?)।

रिवर्स परिदृश्य के लिए, आपको आयात शाखा के साथ काम करने की आवश्यकता हो सकती है, लेकिन मुझे लगता है कि सिंक फ़ोल्डर में आपके सहयोगियों से परिवर्तन प्राप्त करना संभव होगा, लेकिन यह एक नई शाखा में आयात करें, और इसे अपने साथ विलय करें मास्टर शाखा जिसे आपने अपने मुख्य गिट भंडार से खींच लिया था। इस विलय के बाद, आप git push को अपने Work\Project.git पर वापस कर सकते हैं।

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

गिट में सीवीएस परिवर्तन सेट को आयात करना, एक गिट-सीवीसिंपोर्ट है जो आपको इसके साथ मदद करनी चाहिए।

+0

यह अच्छा लगता है, केवल एक चीज जो इसे संभाल नहीं पाती है वह मेरे मौजूदा संशोधन इतिहास को संरक्षित रखती है। git-cvsexportcommit थोड़ा अस्थिर है। – rjh

+0

हम्म .. अच्छी तरह से आप अपने गिट रेपो से पैच उत्पन्न कर सकते हैं, और उन्हें अपने सिंक रेपो में काम करने के रूप में फिर से चला सकते हैं।थोड़ी देर के साथ आप इसके लिए एक स्क्रिप्ट भी लिख सकते हैं। –

+0

मैं प्रयोग कर रहा हूं, इसमें बहुत सारे मैन्युअल काम शामिल होंगे, लेकिन यह करने योग्य है। विस्तृत प्रतिक्रिया के लिए धन्यवाद! – rjh

2

git cvsimport और git cvsexportcommit आप एक कार्यप्रवाह करने के लिए git svn

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

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