2009-05-18 10 views
16

हमारे पास एकाधिक संबंधित परियोजनाओं के साथ एक एकल एसवीएन भंडार है। इस तरह ...मैं एक ही भंडार से कई परियोजनाओं के ट्रंक को कैसे देख सकता हूं?

\repo 
    \Project1 
    \branches 
    \tags 
    \trunk 
    \Project2 
    \branches 
    \tags 
    \trunk 
    \Project3 
    \branches 
    \tags 
    \trunk 

मैं शाखाओं/टैग फ़ोल्डरों के बिना अपने कार्यक्षेत्र में प्रत्येक प्रोजेक्ट के ट्रंक को देखना चाहता हूं।

\workspace 
    \Project1 
    \trunk 
    \Project2 
    \trunk 
    \Project3 
    \trunk 

क्या प्रत्येक ट्रंक को अलग-अलग जांचने के बिना ऐसा करने का कोई तरीका है?

उत्तर

8

संक्षिप्त उत्तर: नहीं।

लंबा उत्तर: http://svnbook.red-bean.com/en/1.5/svn.advanced.sparsedirs.html देखें और एक लूप स्क्रिप्ट में अपने चेकआउट करें।

+0

उत्तर नहीं जो मैं सुनना चाहता था ...:-(लेकिन किसी भी तरह से त्वरित और सटीक प्रतिक्रिया के लिए धन्यवाद। ऐसा लगता है कि मैं आज एक स्क्रिप्ट लिखूंगा। –

+3

मुझे प्रक्रिया को स्वचालित करने के लिए बैच फ़ाइल मिली। http://www.lostechies.com/blogs/hex/ संग्रह/2008/03/11/बैच-फ़ाइल-टू-चेकआउट-ऑल-रूट-लेवल-प्रोजेक्ट-ट्रंक-इन-ए-सबवर्जन-रिपॉजिटरी.aspx –

+0

बैच फ़ाइल उन लोगों के लिए बहुत बढ़िया है जो विंडोज़ पर फंस गए हैं। – pards

1

संपादित करें:

$ svn checkout file:///tmp/repos/test file:///tmp/repos/quiz 
A test/a 
A test/b 
Checked out revision 2. 
A quiz/l 
A quiz/m 
Checked out revision 2. 
$ ls 
quiz test 

चेक बाहर दो अलग-अलग काम कर रहे प्रतियों में 2 अलग निर्देशिका, लेकिन जगह दोनों: नीचे

चेक बाहर दो अलग-अलग काम कर रहे प्रतियों में 2 अलग निर्देशिका वर्गों के लिए SVN Book की जाँच 'कामकाजी प्रतियां' नामक एक निर्देशिका में:

$ svn checkout file:///tmp/repos/test file:///tmp/repos/quiz working-copies 
A working-copies/test/a 
A working-copies/test/b 
Checked out revision 2. 
A working-copies/quiz/l 
A working-copies/quiz/m 
Checked out revision 2. 
$ ls 
working-copies 
0

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

7

आप -N विकल्प का उपयोग कर सकते हैं, जो उपनिर्देशिका को अनदेखा करता है।

svn co -N http://path/to/repo 
cd repo 
for f in Project1 Project2 Project3; do 
    svn up -N $f 
    svn up $f/trunk 
done 

और बाद में चड्डी अद्यतन करने के लिए:

svn up repo/*/trunk 

यह सब SVN ग्राहकों के साथ काम करता है आप यह बहुत ही पहली बार जब आप स्रोतों की जाँच चला सकते हैं। यदि आप एक एसवीएन 1.5.एक्स क्लाइंट का उपयोग कर रहे हैं, तो आप "स्पैस निर्देशिका" पर भी देख सकते हैं, Sparse Directories पर दस्तावेज़ (मुझे अभी तक लिंक पोस्ट करने की अनुमति नहीं है: -C), जो आपको चलाने की अनुमति देगा भंडार निर्देशिका में "svn अद्यतन"।

5

इसने चाल को अच्छी तरह से टक्कर में किया। ध्यान दें कि प्रोजेक्ट्स आयात करते समय ग्रहण को खुश करने के लिए मैंने आउटपुट फ़ोल्डरों का नाम बदल दिया। Checkout just the trunks of a SVN repository

यह एक फ्लैट निर्देशिका संरचना करने के लिए चड्डी बाहर की जाँच करता है (अगर एक ट्रंक पहले से ही स्थानीय स्तर पर मौजूद है:

for f in `svn ls http://path/to/repo`; do svn checkout http://path/to/repo/${f}trunk $f; done 
1

मैं भी सिर्फ एक SVN भंडार की चड्डी चेकआउट करने की जरूरत थी इसलिए मैं इस Windows बैच लिखा था यह अद्यतन किया गया है)। कृपया अधिक जानकारी के लिए बैच पर टिप्पणियां पढ़ें।

+0

आपका लिंक समाप्त हो गया है (यही कारण है कि आपको ऐसी जानकारी इनलाइन शामिल करनी चाहिए :))। –

0

इस मिले ऊपर के बजाय काम करने:

checkoutList.bat: 

for %%G in (projectA, projectB, projectC) do (
    echo %%G 
    mkdir %%G 
    svn co http://your.repo/path/%%G/trunk %%G 
) 
-1

सही फ़ोल्डर पर क्लिक करें - SVN की जाँच करें। अपना यूआरएल रखें और "आइटम चुनें" बटन पर क्लिक करें। चेक बॉक्स के साथ उप-फ़ोल्डर चुनें जिन्हें आप शामिल करना चाहते हैं।

+0

आप निर्देश ओएस और किस उपकरण के लिए हैं? कछुआ? –

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

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