2011-06-23 16 views
5

संक्षेप में बनाने के लिए Git SVN रिबेस को रोकने के लिए समस्या है, जब मैं Git SVN रिबेस चलाने के लिए, मैं का एक समूह मिला है "बनाने खाली निर्देशिका: ..."खाली निर्देशिका

SVN पक्ष में है, ट्रंक, इसमें बहुत सी फाइलों के साथ TOD (ट्रंक केवल डिर) नामक एक निर्देशिका है। एक और शाखा में, ऐसी कोई निर्देशिका नहीं है।

जब मैंने गिट svn के साथ इस svn भंडार को क्लोन किया, मास्टर चीजों पर सही है, लेकिन शाखा पर, मुझे TOD निर्देशिका और एक ही निर्देशिका संरचना मिली है, सिवाय इसके कि इसमें कोई फ़ाइल नहीं है।

यदि मैं TOD निर्देशिका आरएम (सुरक्षित है क्योंकि गिट निर्देशिकाओं को ट्रैक नहीं करता है), और मास्टर पर स्विच करें और गीट svn rebase चलाएं, तो मुझे "खाली निंदा" संदेश मिल गया, फिर जब मैं शाखा चेकआउट करता हूं, तो TOD निर्देशिका वापस आती है।

सब कुछ, प्रश्न यह है कि शाखा पर खाली TOD निर्देशिका बनाने से गिट svn को कैसे रोकें?

+1

'svn-remote सेट नहीं करता है। .automkdirs' गलत और 'svn.rmdir' सच मदद के लिए? –

+0

किसी को भी यह सोचने के लिए कि के लिए किस मूल्य का उपयोग किया जाना चाहिए, यह .git/config फ़ाइल का निरीक्षण करके पाया जा सकता है। [Svn-remote "svn"] लेबल वाला एक अनुभाग है जिसका अर्थ है कि svn आपके रिमोट का नाम है, जो डिफ़ॉल्ट है यदि आपने svn-remote के लिए कोई अन्य नाम निर्दिष्ट नहीं किया है। – axiopisty

उत्तर

5

मेरा मानना ​​है कि @ बेन-tebulin सही है, कि

git config svn-remote.svn.automkdirs false 
git config svn.rmdir true 

करके चीजों को सही करना चाहिए। दुर्भाग्य से मैं जल्द ही अन्य परियोजनाओं में चले गए और इसे सत्यापित करने का मौका नहीं मिला।

इसे लिखने के समय, मैंने लगभग अपने svn-fu को खो दिया, एक परीक्षण किया और समस्या को पुन: उत्पन्न नहीं कर सका, और ऐसा लगता है कि गिट-एसवीएन अब शाखाओं के बीच साफ-सफाई कर सकता है।

+0

यदि आप इन आदेशों को चलाने से पहले और बाद में .git/config फ़ाइल के अंतर का निरीक्षण करते हैं तो आपको यह आदेश मिलेगा कि ये आदेश क्या कर रहे हैं। आपको svn-remote के लिए उपयोग करना चाहिए। कमांड .git/config फ़ाइल के खंड [svn-remote ""] में स्थित है। डिफ़ॉल्ट "svn" पर सेट है, जैसा कि इस उत्तर में प्रदर्शित किया गया है। – axiopisty

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