जवाबों:
तोड़फोड़ में शाखाकरण एक बहुत ही हल्के और कुशल नकल सुविधा द्वारा किया जाता है।
ब्रांचिंग और टैगिंग प्रभावी रूप से समान हैं। svn copyकमांड के उपयोग से रिपॉजिटरी में कहीं और रिपॉजिटरी में पूरे फोल्डर को कॉपी करें ।
मूल रूप से इसका मतलब है कि यह कन्वेंशन से है कि एक फ़ोल्डर की नकल करने का क्या मतलब है - चाहे वह बैकअप, टैग, शाखा या जो भी हो। इस बात पर निर्भर करता है कि आप चीजों के बारे में कैसे सोचना चाहते हैं (सामान्य तौर पर इस बात पर निर्भर करता है कि आपने अतीत में एससीएम टूल का उपयोग किया है) आपको अपनी शैली का समर्थन करने के लिए अपने रिपॉजिटरी के भीतर एक फ़ोल्डर संरचना स्थापित करने की आवश्यकता है।
आम शैलियों बुलाया अपने भंडार के शीर्ष पर फ़ोल्डरों का एक समूह है करने के लिए कर रहे हैं tags, branches, trunkहै कि आप अपने पूरे कॉपी करने के लिए अनुमति देता है - आदि, trunkमें (या उप सेट) tagsऔर / या branchesफ़ोल्डरों। यदि आपके पास एक से अधिक प्रोजेक्ट हैं, तो आप प्रत्येक प्रोजेक्ट के तहत इस तरह की संरचना को दोहराना चाहते हैं:
अवधारणा का उपयोग करने में थोड़ा समय लग सकता है - लेकिन यह काम करता है - बस यह सुनिश्चित करें कि आप (और आपकी टीम) उन सम्मेलनों पर स्पष्ट हैं जो आप उपयोग करने जा रहे हैं। एक अच्छा नामकरण सम्मेलन होना भी एक अच्छा विचार है - ऐसा कुछ जो आपको बताता है कि शाखा / टैग क्यों बनाया गया था और क्या यह अभी भी उपयुक्त है - पुरानी शाखाओं के उन तरीकों पर विचार करें जो अप्रचलित हैं।
svn cpसस्ती प्रतियों का उपयोग करता है, यह शाखा के दौरान वास्तविक फ़ाइलों की प्रतिलिपि नहीं बनाता है । Svnbook.red-bean.com/en/1.1/ch04s02.html
svn copyनिम्नानुसार कमांड का उपयोग करके एक नई शाखा बनाएं :
$ svn copy svn+ssh://host.example.com/repos/project/trunk \
svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH \
-m "Creating a branch of project"
svn switch svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH .(यदि आप वर्तमान चेकआउट को नई शाखा में बदलना चाहते हैं) या svn checkout svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH(यदि आप अलग निर्देशिका में नई शाखा रखना चाहते हैं) तो नई बनाई गई शाखा पर काम करना शुरू करें।
--parentsविकल्पका उपयोग करना होगाsvn copy!
-mविकल्प को छोड़ देता हूं , तो यह पसंद करता है svn: E155010: Path '/home/constantine/someDirectory/svn+ssh:https:/myhost.com/svn/dir1/dir2/trunk/dir3/dir4/dir5' does not exist। इसके साथ -mकहते हैं svn: E205009: Local, non-commit operations do not take a log message or revision properties। (मैंने पते बदल दिए हैं, लेकिन वे मौजूद हैं, छोड़कर, inc, नई शाखा निर्देशिका, और संपूर्ण पथ + url जो किसी कारण से त्रुटि में विलय हो गया है) ।
svn cp /trunk/ /branch/NEW_Branch
यदि आपके पास ट्रंक में कुछ स्थानीय परिवर्तन हैं तो Rsyncपरिवर्तनों को सिंक करने के लिए उपयोग करें
rsync -r -v -p --exclude ".svn" /trunk/ /branch/NEW_Branch
rsyncइस तरह से उपयोग करने की कोई आवश्यकता नहीं है । svn cpकिसी भी स्थानीय परिवर्तन की नकल भी करेगा।
मान लें कि आप एक ट्रंक नाम ("टेस्ट" के रूप में) से एक शाखा बनाना चाहते हैं तो उपयोग करें:
svn cp -m "CREATE BRANCH TEST" $svn_url/trunk $svn_url/branches/TEST
आम तौर पर आप इसे svn + ssh: //host.example.com/repos/project/branches/mybranch पर कॉपी करेंगे ताकि आप रिपॉजिटरी में कई शाखाएं रख सकें, लेकिन आपका सिंटैक्स मान्य है।
अपने रिपॉजिटरी लेआउट को सेट करने के तरीके के बारे में कुछ सलाह यहाँ दी गई है ।
नए एसवीएन उपयोगकर्ताओं के लिए शीर्ष टिप; यह जल्दी से सही URL प्राप्त करने में थोड़ी मदद कर सकता है।
svn infoवर्तमान चेक-आउट शाखा के बारे में उपयोगी जानकारी प्रदर्शित करने के लिए चलाएँ ।
URL चाहिए (यदि आप रूट फ़ोल्डर में svn चलाते हैं) तो आपको वह URL देना होगा जिसकी आपको प्रतिलिपि बनाने की आवश्यकता है।
इसके अलावा नई बनाई गई शाखा में जाने के लिए, svn switchकमांड का उपयोग करें :
svn switch http://my.repo.url/myrepo/branches/newBranchName
यदि आप भी अपनी शाखा के विलय की योजना बनाते हैं, तो मेरा सुझाव है कि आप इसे देखें:
मुझे लगता है कि तोड़फोड़ 1.5 मर्ज ट्रैकिंग के अधिक बनाता है, मैं उस के साथ कोई अनुभव नहीं है। मेरी परियोजना 1.4.x पर है और svnmerge.py एक जीवन रक्षक है!
नीचे विंडोज मशीन में TortoiseSVN का उपयोग करके ट्रंक से एक शाखा बनाने के चरण हैं। यह स्पष्ट रूप से TortoiseSVN क्लाइंट को स्थापित करने की आवश्यकता है।