2013-07-25 11 views
22

की एकल निर्देशिका की Git SVN क्लोन मैं git svn उपयोग करने के लिए एक Git भंडार में एक SVN भंडार का एक ही निर्देशिका क्लोन करने के लिए प्रयास कर रहा हूँ।SVN भंडार

यदि मैं git svn clone svn+ssh://path/to/repo/trunk/directory का उपयोग करता हूं, तो मुझे स्रोतों के बिना एक गिट रेपो मिलता है जो स्रोत एसवीएन रेपो में शाखाओं को मिरर करता है।

अगर मैं git svn --stdlayout svn+ssh://path/to/repo/trunk/directory उपयोग करते हैं, मैं एक खाली Git रेपो मिलता है। निम्न आदेश के उत्पादन में किया जाता है:

Initialized empty Git repository in /directory/.git/ 
Using higher level of URL: svn+ssh://path/to/repo/trunk/directory => svn+ssh://path/to/repo 
W: Ignoring error from SVN, path probably does not exist: (160013): Filesystem has no item: File not found: revision 100, path '/trunk/directory' 
W: Do not be alarmed at the above message git-svn is just searching aggressively for old history. 
This may take a while on large repositories 

मैं पढ़ा था कि जिस तरह से ऊपर ठीक करने के लिए -r 1000:HEAD की तरह एक संशोधन सीमा को जोड़ने के लिए, यह अभी भी एक खाली रेपो पैदा करता था। उत्पादन होता है:

Initialized empty Git repository in /directory/.git/ 
Using higher level of URL: svn+ssh://path/to/repo/trunk/directory => svn+ssh://path/to/repo 

कैसे Git-SVN है कि अभी भी शाखाओं स्रोत SVN respository से & के सभी टैग पकड़ लेता है का उपयोग कर एक SVN भंडार की उपनिर्देशिका क्लोन करने पर कोई भी विचार?

git svn clone svn+ssh://path/to/repo/ --trunk=trunk/directory --branches=branches/*/directory --tags=tags/*/directory 

उत्तर

38

आप मानक लेआउट नहीं करना चाहते, तो आप कुछ इस तरह चाहते हैं डेटा:

git svn init http://my_svn_server.com/repository/project/location 
git svn fetch 

क्रेडिट गेब्रियल Saldaña को जाता है: http://blog.gabrielsaldana.org/using-git-with-subversion-repository-subdirectory/

+7

अंतर्दृष्टि यहाँ है कि आप '--branches' बहस में वाइल्डकार्ड वर्णों का उपयोग कर सकते है। अच्छा था। –

+2

बस एक नोट - यदि आपके पास उस विशिष्ट निर्देशिका के लिए शाखाएं नहीं हैं और न ही टैग हैं तो आप सुरक्षित रूप से '--branches' और' --tags' पैरामीटर को छोड़ सकते हैं। यह '--stdlayout' के बजाय' --trunk = ... 'का उपयोग कर ठीक काम करना चाहिए। – Nux

22

तैयार करें और स्थानीय परियोजना निर्देशिका दर्ज करें::

mkdir local/project/path 
cd local/project/path 

SVN दूरदराज के साथ स्थानीय Git भंडार प्रारंभ और लाने

+2

की तरह एक आकर्षण –

+1

ध्यान दें कि यह उपयोगकर्ता (लेखक) मैपिंग फ़ाइल जोड़ने की अनुमति नहीं है काम किया। कम से कम '-A' के साथ नहीं। – Nux

+1

यह आमतौर पर एक-चरण 'गिट svn क्लोन' से अलग नहीं है। – MarkHu

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