समस्यागिट और एसवीएन रेपोज़ के बीच ब्रिज के रूप में गिट का उपयोग करना?
मेरी टीम bitbucket पर स्रोत नियंत्रण के लिए Git का उपयोग करता है, हमारे ग्राहक के घर में सबवर्सन उपयोग करता है। सबवर्सन में कोड चेक करते समय हमारी टीम गिट का उपयोग कैसे जारी रख सकती है? और, नहीं, मुझे नहीं लगता कि गिट-एसवीएन काम करेगा।
आवश्यकताओं
मेरी टीम एक शुद्ध Git समाधान, नहीं Git-SVN का उपयोग करना चाहता है। इसका कारण यह है कि हमारे ग्राहक ने हमें अपने कार्यालय लैन के भीतर ही अपने एसवीएन पर्यावरण तक पहुंच प्रदान की है; हम कार्यालय से बाहर काम करते समय svn करने के लिए प्रतिबद्ध नहीं कर सकते हैं।
मेरे दृष्टिकोण
मैंने सोचा था कि मैं Git-svn का उपयोग कर तोड़फोड़ भंडार चेकआउट सकता है, तो एक ही Git स्वरुप में SVN भंडार के लिए एक रिमोट के रूप में हमारे bitbucket Git उदाहरण जोड़ें। एक क्रॉन जॉब हमारे बिटकबकेट रेपो से git pull
कर सकता है, फिर बिगबकेट में हमारे क्लाइंट के सबवर्जन रिपोजिटरी में परिवर्तन को धक्का देने के लिए git svn dcommit
करें।
यह कारण था कि गिट हमेशा दिखाएगा कि मैं पुल के बाद गिट बिटबकेट रिपोजिटरी से पहले संशोधनों की 'x' संख्या था, svn dcommit प्रक्रिया समाप्त हो गई।
जबकि कुछ भी बाहरी रूप से अजीब नहीं चल रहा है, कुछ बिंदु पर मुझे विश्वास है कि हमारा ग्राहक अपने उपवर्तन भंडार में चेक-इन बनाना शुरू कर देगा कि मुझे अंततः हमारे बिटबकेट उदाहरण को धक्का देना होगा।
तकनीकी विवरण
ये कदम उठाएँ मैं इस काम के प्राप्त करने की कोशिश करने के लिए उपयोग कर रहे हैं का एक मोटा श्रृंखला है: के बाद
git svn clone -s http://svn.my-client.us/my-proj/
cd my-proj
git remote add origin path-to-bitbucket-repo
git fetch origin
git checkout -b develop remotes/develop
git branch --set-upstream develop origin/develop
git pull
#add merge comment here
git svn rebase
git svn dcommit #takes a while to transfer all the individual commits
सब से ऊपर, को क्रियान्वित करने git status
:
[[email protected] myDir]$ git st
# On branch develop
# Your branch is ahead of 'origin/develop' by 59 commits.
#
nothing to commit (working directory clean)
यह देखते हुए कि मुझे किसी भी स्थान से चेक-इन करने में सक्षम होना चाहिए, न कि जब मैं कार्यालय में हूं, तो क्या कोई है ऐसा करने के लिए पुल के रूप में इसका उपयोग करने के लिए रणनीति?
धन्यवाद!