यह एक अजीब सवाल है कि मैंने जिस टीम में शामिल किया है वह एसवीएन का उपयोग कर रहा है। असल में, एसवीएन भंडार एक मानक लेआउट का पालन करता है, लेकिन ट्रंक वास्तव में 1.5 साल या उससे भी कम समय तक छुआ नहीं गया है और काम केवल शाखाओं और शाखाओं की शाखाओं में होता है। इस प्रकार, मैंने शाखा से क्लोन करने के लिए गिट-एसवीएन का उपयोग किया है जो हमारी अगली रिलीज के लिए सक्रिय शाखा का प्रतिनिधित्व करता है और यही वह है जो मेरे स्थानीय गिट भंडार में मास्टर ट्रैक है। चलो इस शाखा को यहां से svn 'रिलीज' में कॉल करें। इस उद्देश्य के लिए गिट-एसवीएन का उपयोग करना सिर्फ डरावना डोरी है।git-svn - एक दूरस्थ शाखा चेक करें जो पहले से ही एक शाखा है जब svn में पहले से मौजूद है। इसे समझाएं। Git/config
अब, किसी ने 'रिलीज' से एक फीचर शाखा बनाई है, जिसे मैं 'फीचर' कहने जा रहा हूं, कि मैं अपनी स्थानीय शाखा में उतरना चाहता हूं और साथ ही साथ प्रतिबद्ध हूं। निश्चित रूप से, मैं सिर्फ क्लोनिंग के साथ दूर हो सकता हूं कि स्थानीय रूप से दूसरी निर्देशिका/गिट रिपॉजिटरी में शाखा बंद हो जाती है, लेकिन मैं वास्तव में क्या करना चाहूंगा, मेरे स्थानीय गिट भंडार के भीतर स्थानीय शाखा में 'फीचर' प्रतिबिंबित है और साथ ही विलय करना जितना संभव हो उतना सीधा। मैंने देखा है कि अन्य stackoverflow.com पोस्ट दिखाते हैं कि यह कैसे काम करता है कि आपने git svn init
--stdlayout
के साथ उपयोग किया है, लेकिन मैंने ऊपर दिए गए कारणों के लिए मेरे मामले में ऐसा नहीं किया।
यहाँ मेरी .git/config है
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[svn-remote "svn"]
url = https://our.svn.server/svn/root/branches/release
fetch = :refs/remotes/git-svn
मैं यह सोचते कर रहा हूँ क्या मैं अपने [svn-remote]
खंड में जरूरत है एक branches = $something
है, लेकिन मैं नहीं जानता कि क्या है कि $ कुछ इस मामले में है और न ही किस जादू गिट चेकआउट और अन्य आदेश जो मुझे उस परिवर्तन को करने के बाद चाहिए .git/config।
कोई सुझाव?
संपादित करें - निम्न काम करता है:
तो मैं खरोंच से शुरू किया और निम्नलिखित क्लोन आदेश किया था:
git svn clone https://my.svn.server/svn/root -T branches/branch_I_want_as_master -b branches
कौन सा, के बारे में 16 घंटे के बाद, अंत में सब कुछ खींच लिया नीचे यह आवश्यक है। परिणामी .git/config इस तरह दिखता है:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[svn-remote "svn"]
url = https://my.svn.server/svn/root
fetch = branches/branch_I_want_as_master:refs/remotes/trunk
branches = branches/*:refs/remotes/*
तो मैं इस काम करता है - मैं कर सकते हैं git checkout -b name-of-a-branch name-of-a-branch
और यह मेरे अपने स्थानीय Git रेपो में दूरदराज के शाखा देता है। पिछले जवाब मुझे आवश्यक सटीक उत्तरों नहीं थे, लेकिन मैं मददगार था क्योंकि वे मददगार थे।
इस बिंदु पर, मैं जवाब स्वीकार करूंगा जो बताता है कि यह क्यों काम करता है और शायद एक उपयोगी लिंक जो चीजों को ठीक से कैसे करता है .git/config।
में ट्रैक करना चाहते हैं मैंने इस विधि को भी आजमाया है। संशोधित करने के बाद मैं वास्तव में क्या करूँगा। Git/config "शाखा = .." को शामिल करने के लिए? बस एक सादा 'गिट एसवीएन fetch' कुछ भी नीचे नहीं लाया था और 'गिट शाखा- $ $ $ रिमोटनाम' के परिणामस्वरूप मुझे रिमोट शाखा को ट्रैक नहीं किया गया। – whaley