2012-10-12 17 views
7

में टोर्टोइज एसवीएन के साथ बाहरी संस्करण मैं विंडोज मशीन पर TortoiseSVN के साथ svn:externals सेट अप करने का प्रयास कर रहा हूं। मेरे पास दो परियोजनाएं हैं और दोनों रिपॉजिटरीज पहले ही उसी स्थानीय मशीन पर बनाई गई हैं।एसवीएन सेट अप करना: विंडोज

वर्तमान संरचना इस तरह दिखती है। मैंने पंजीकरण निर्देशिकाओं (चेकआउट) के लिए repoA, repoB और workA और workB के लिए बनाया है।

डेटा संग्रह स्थान

Z: \ रेपोस \ repoA

Z: \ रेपोस \ repoB

कार्य निर्देशिकाएँ

Z: \ परियोजनाओं \ worka \ ट्रंक \ core.php

Z: \ परियोजनाओं \ worka \ ट्रंक \ lib \ lib01.php

Z: \ परियोजनाओं \ workB \ ट्रंक \ core_mod.php

Z: \ परियोजनाओं \ workB \ ट्रंक \ lib \

(वहाँ tags और branches फ़ोल्डर हैं लेकिन वे सवाल सरल रखने के लिए छोड़े गए हैं।)

क्या मैं प्राप्त करना चाहते हैं इस मामले +०१२३७२४०५८४ में फ़ाइल (रों) workA\trunk\lib\ किया जा रहा हैको workB\trunk\lib\ निर्देशिका में स्वचालित रूप से कॉपी करने के लिए।

  1. workA की जांच की गई और यह repoA करने के लिए सौंपा और workB की जाँच की और यह repoB
  2. लागू किए गए workA\trunk फ़ोल्डर में सौंपा:

    आदेश में इस सेट करने के लिए, मैं क्या किया है इस प्रकार है इसलिए repoA अद्यतित है।

  3. workB\trunk\lib के लिए एक आयात स्थान असाइन करने के लिए ओरेडर में, workB फ़ोल्डर पर राइट क्लिक किया और TortoiseSVN -> Properties चुना।
  4. New -> Externals पर क्लिक किया और क्लिक किया New...
  5. Local path फ़ॉर्म फ़ील्ड में ./trunk/lib टाइप किया है। URL फ़ील्ड के लिए, file:///Z:/repos/repoA/trunk/lib टाइप किया गया। ... बटन दबाकर, रेपो-ब्राउज़र खोला गया और लक्ष्य फ़ोल्डर का चयन करने में मदद मिली।

    enter image description here

    enter image description here

  6. Ok कई बार क्लिक किया सेटिंग्स विंडो बंद करने के लिए। मैंने माना कि बाहरी सेटिंग की गई थी।

  7. एक फाइल बनाई Z:\Projects\workB\trunk\core_mod.php
  8. सही Z:\Projects\workB\trunk\ पर क्लिक किया और SVN Comit चयनित workBrepoB के बस।

मुझे इस बिंदु पर उम्मीद थी, lib01.php स्वचालित रूप से Z:\Projects\workB\trunk\lib फ़ोल्डर में आयात किया जाएगा लेकिन कुछ भी कॉपी नहीं किया गया है। मैंने workB\trunk फ़ोल्डर पर राइट क्लिक करके SVN Update भी कोशिश की। लेकिन workB\trunk\lib फ़ोल्डर खाली रखा गया।

मुझे संदेह है कि सापेक्ष पथ ./trunk/lib गलत होना चाहिए। मुझे नहीं पता। यदि आप यह बता सकते हैं कि मैं क्या गलत कर रहा हूं, तो इसकी सराहना की जाएगी।

अद्यतन

6a - कार्य की प्रतिलिपि WorkB बदल प्रतिबद्ध रपो

यह मेरे लिए एक ब्लाइंड स्पॉट था। मैंने Z:\Projects\workB पर दायाँ क्लिक किया और SVN Commit... चुना और यह निम्न त्रुटि दी।

enter image description here

ठीक बटन क्लिक करने के बाद तुरंत मैं फ़ोल्डर को अपडेट और मैं ठीक क्लिक किया है कि क्या पूछ एक संवाद खिड़की मिला है। फिर TortoiseSVN ने Z:\Projects\workB को अपडेट करना शुरू किया और मुझे यह त्रुटि मिली। लेकिन इसके बाद, जब मैंने Z:\Projects\workB फिर से काम किया, तो यह बिना किसी त्रुटि के चला गया।

enter image description here

("ट्रंक/lib" अपने मामले में और अधिक बुलेटप्रूफ हो जाएगा, मुझे लगता है)।

धन्यवाद, जब मैं workB फ़ोल्डर की Property reselected और svn:externals के लिए Edit बटन पर क्लिक किया, TortoiseSVN स्वचालित रूप से करने के लिए trunk/lib./trunk/lib समायोजित। अब यह ऐसा होने वाला है।

6b - RepoB (बस सबसे तेज़ तरीका) पर repobrowser साथ परीक्षण, कि परिभाषा

मैं सही Z:\repos\repoB पर क्लिक किया और TortoiseSVN -> repo-browser चुना है और ट्रंक फ़ोल्डर में नीचे ब्राउज़ की सही है। यह इस प्रकार दिखता है। क्या यह सही दिखता है? मैं वास्तव में नहीं जानता क्योंकि मैंने इस कार्य पर कभी काम नहीं किया था। ट्रंक फ़ोल्डर के नीचे lib फ़ोल्डर repo-browser में खाली है।

enter image description here

Z:\Projects\workB\trunk\lib फ़ोल्डर अभी भी खाली है। त्रुटि संदेश 'Z: \ Projects \ workB' को स्थानांतरित करने का सुझाव देता है लेकिन मुझे यकीन नहीं है कि इसका क्या अर्थ है।

+0

रेपो-broswer दिखाने ** ट्रंक के अंदर दो ** lib फ़ोल्डरों - एक बाहरी और एक असली (आवश्यक नहीं) - यह समस्या है। रेपो –

+0

'रेपो-ब्रोसर दो ट्रंक फ़ोल्डरों को ट्रंक के अंदर दिखाएं - एक बाहरी और एक असली (आवश्यक नहीं) - यह समस्या है। - यह यह था कि ट्रंक के अंदर ताजा चेकआउट (पूरी तरह से रिकर्सिव, बाहरी के साथ) का नया चेकआउट आज़माएं। । धन्यवाद। मैंने रेपो-ब्राउजर में वास्तविक 'lib' फ़ोल्डर हटा दिया,' Z: \ Projects \ workB \ trunk \ lib', और 'Z: \ Projects \ workB' पर 'SVN अपडेट' किया। अब 'Z: \ Projects \ workB \ trunk \ lib \ lib01.php' स्वचालित रूप से बनाया गया था। यह हल करने के लिए वास्तव में एक लंबी यात्रा थी। – Teno

उत्तर

3

आप भूल गया कम से कम एक अनिवार्य कार्रवाई

6a - RepoB (बस सबसे तेज़ तरीका) पर repobrowser साथ परीक्षण, कि -

6b कार्य कॉपी WorkB बदल प्रतिबद्ध

और एक वैकल्पिक चौकी रपो परिभाषा सही है

क्यों याद नहीं किया जा सकता है, लेकिन मैंने टीएसवीएन में यूआरएल के लिए पथ-स्पेक में कभी भी इसका उपयोग नहीं किया है। (आपके मामले में "ट्रंक/lib" अधिक बुलेटप्रूफ होगा, मुझे लगता है)। और शुद्ध व्यक्तिगत आदतों - मैं माउंट के बिंदु पर बाहरी को परिभाषित है, भले ही परिणाम के रूप में मैं दिखाया रेपो अंदर कई परिभाषाएं बजाय एक पेड़ और परिभाषा में बाहरी के साथ रूट में एकत्रित

रेपो ब्राउज़र प्राप्त

Repo-Browser

+0

धन्यवाद। मैंने सवाल अपडेट किया। – Teno

0

इस मुद्दे पर आने वाले किसी भी व्यक्ति के लिए, वर्कबी की कार्यशील निर्देशिका को आयात करने वाले फ़ोल्डर की आवश्यकता नहीं थी।

Z: \ परियोजनाओं \ worka \ ट्रंक \ core.php

Z: \ परियोजनाओं \ worka \ ट्रंक \ lib \ lib01.php

Z: \ परियोजनाओं \ workB \ ट्रंक \ core_mod .php

Z: \ परियोजनाओं \ workB \ ट्रंक \ lib \

होना ही था

Z: \ परियोजनाओं \ worka \ ट्रंक \ core.php

Z: \ परियोजनाओं \ worka \ ट्रंक \ lib \ lib01.php

Z: \ परियोजनाओं \ workB \ ट्रंक \ core_mod.php

Z: \ परियोजनाओं \ workB \ ट्रंक \

(कोई जेड: \ परियोजनाओं \ workB \ ट्रंक \ lib)

+0

वास्तव में आप * कर सकते हैं * (सैद्धांतिक रूप से, मैं परीक्षण के लिए बहुत आलसी हूं) ** असली lib ** फ़ोल्डर और ** बाहरी के अंदर ** यह रूट है, यदि: 1. आप LIB फ़ोल्डर 2 के लिए बाहरी परिभाषा तैयार करेंगे। माउंट पथ "।" –

+0

दिलचस्प। हालांकि मेरे वर्तमान समझ स्तर के लिए थोड़ा जटिल लगता है। शायद अन्य उन्नत उपयोगकर्ताओं के लिए जानकारी उपयोगी होगी। आपके सहयोग के लिए धन्यवाद। – Teno