मैं एसवीएन में एक शाखा कैसे बना सकता हूं?

मैं एसवीएन में एक शाखा कैसे बना सकता हूं?

0
जोड़ा संपादित
विचारों: 2

9 उत्तर

आम तौर पर आप इसे svn + ssh: //host.example.com/repos/project/branches/mybranch पर कॉपी करेंगे ताकि आप भंडार में कई शाखाएं रख सकें, लेकिन आपका वाक्यविन्यास मान्य है।

अपने भंडार लेआउट को कैसे सेट अप करें पर कुछ सलाह दी गई है।

0
जोड़ा

यदि आप अपनी शाखा विलय करने की भी योजना बनाते हैं, तो मैं अत्यधिक सुझाव देता हूं कि आप इसे देखें:

Svnmerge.py

मैंने सुना है कि सबवर्सन 1.5 में विलय ट्रैकिंग का अधिक निर्माण होता है, मुझे इसके साथ कोई अनुभव नहीं है। मेरी परियोजना 1.4.x पर है और svnmerge.py एक जीवन बचतकर्ता है!

0
जोड़ा

सबवर्सन svn कॉपी कमांड का उपयोग करके एक नई शाखा बनाने के लिए इसे आसान बनाता है (कुछ बहुत आसान लगता है)।

$ 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"
0
जोड़ा
अगला उपयोग svn स्विच svn + ssh: //host.example.com/repos/project/branches/NAME_OF_BR‌ ANCH। (यदि आप मौजूदा चेकआउट को नई शाखा में स्विच करना चाहते हैं) या नव निर्मित शाखा पर काम करना शुरू करने के लिए svn checkout svn + ssh: //host.example.com/repos/project/branches/NAME_OF_BR‌ ANCH (यदि आप अलग निर्देशिका में नई शाखा चाहते हैं)।
जोड़ा लेखक Jakub Narębski, स्रोत
नोट: कुछ मामलों में आपको - माता-पिता विकल्प svn copy </कोड>!
जोड़ा लेखक Jakub Narębski, स्रोत
किसी कारण से मैंने इस cmd का उपयोग किया और यह काम नहीं किया, लेकिन जब मैंने svn + ssh को केवल https में बदल दिया तो यह काम करता था। क्या मैंने कुछ गलत किया था? svn + ssh का अर्थ क्या है? धन्यवाद!
जोड़ा लेखक Aviel Gross, स्रोत
अपने स्वयं के प्रश्न का उत्तर देते हुए, ऐसा इसलिए था क्योंकि शाखा की निर्देशिका पहले से मौजूद थी। यदि लक्ष्य शाखा डीआईआर अभी तक मौजूद नहीं है, तो यह काम करता है।
जोड़ा लेखक peedee, स्रोत
मैंने यह svn copy किया और ... / project / branch / my_new_branch / trunk /... जैसी संरचना के साथ समाप्त हुआ। मैं अपनी नई शाखा के अंदर एक और "ट्रंक" रखने से कैसे बच सकता हूं?
जोड़ा लेखक peedee, स्रोत
बस आसान भाग पर picky जा रहा है। गिट की तुलना में यह आसान बनाता है? गिट शाखा -b branch_name
जोड़ा लेखक pellucide, स्रोत
आपको अपनी शाखा में पहली बार एक नई निर्देशिका बनाना है -> svn mkdir host.example.com/repos/project/branches/NAME_OF_BRANCH -m "सभी शाखाओं को रखने के लिए शाखा निर्देशिका बनाएं"
जोड़ा लेखक Silvio Troia, स्रोत
ठीक है, नीचे जवाब काम किया। चूंकि, मुझे लगता है, svn cp == svn copy , इस उत्तर में भाग svn + ssh गलत है, यह काम नहीं करता < i> (उपर्युक्त त्रुटि को ट्रिगर करता है?) ।
जोड़ा लेखक Hi-Angel, स्रोत
अगर मैं -m विकल्प को छोड़ देता हूं, तो यह svn: E155010: पथ '/home/constantine/someDirectory/svn+ssh:https:/myhost.com/s‌ vn / dir1 / dir2 / trunk / d और zwnj; ir3 / dir4 / dir5 'मौजूद नहीं है-m के साथ यह कहता है svn: E205009: स्थानीय, गैर-प्रतिबद्ध संचालन लॉग संदेश या संशोधन गुण नहीं लेते(मैंने पते को प्रतिस्थापित किया है, लेकिन वे मौजूद हैं, को छोड़कर, नई शाखा निर्देशिका, और पूरे पथ + यूआरएल कि किसी कारण से एसवीएन त्रुटि में विलय हो)
जोड़ा लेखक Hi-Angel, स्रोत
"कुछ बहुत आसान सोचते हैं" इसका मतलब क्या है? कोई भी इसे कठिन क्यों नहीं चाहेगा?
जोड़ा लेखक deetz, स्रोत

सबवर्सन में ब्रांचिंग को बहुत ही हल्की और कुशल प्रतिलिपि सुविधा द्वारा सुविधा प्रदान की जाती है।

शाखाकरण और टैगिंग प्रभावी रूप से वही हैं। बस svn copy कमांड का उपयोग करके भंडार में किसी अन्य फ़ोल्डर को रिपॉजिटरी में कॉपी करें।

असल में इसका मतलब यह है कि यह एक सम्मेलन द्वारा किया जाता है जो किसी फ़ोल्डर को कॉपी करता है - चाहे वह बैकअप, टैग, शाखा या व्हायर हो। इस बात के आधार पर कि आप चीजों के बारे में क्या सोचना चाहते हैं (आमतौर पर आप जिस एससीएम उपकरण को अतीत में इस्तेमाल करते हैं उसके आधार पर) आपको अपनी शैली का समर्थन करने के लिए अपने भंडार के भीतर एक फ़ोल्डर संरचना सेट अप करने की आवश्यकता है।

सामान्य शैलियों में टैग , शाखाएं , trunk , आदि नामक आपके भंडार के शीर्ष पर फ़ोल्डर का एक समूह होना चाहिए - जो आपको अनुमति देता है अपने पूरे ट्रंक (या उप-सेट) को टैग और / या शाखाओं फ़ोल्डर में कॉपी करें। यदि आपके पास एक से अधिक प्रोजेक्ट हैं तो आप प्रत्येक प्रोजेक्ट के तहत इस तरह की संरचना को दोहराना चाहेंगे:

अवधारणा में उपयोग करने में कुछ समय लग सकता है - लेकिन यह काम करता है - बस सुनिश्चित करें कि आप (और आपकी टीम) उन सम्मेलनों पर स्पष्ट हैं जिन्हें आप उपयोग करने जा रहे हैं। एक अच्छा नामकरण सम्मेलन होना भी एक अच्छा विचार है - कुछ ऐसा जो आपको बताता है कि शाखा / टैग क्यों बनाया गया था और क्या यह अभी भी उचित है - अप्रचलित शाखाओं को संग्रहीत करने के तरीकों पर विचार करें।

0
जोड़ा
@inetphantom है, मैं आपको एसवीएन सुविधा देउंगा 'सोच पर प्रकाश' के रूप में प्रकाश है, लेकिन कुशल नहीं है! आप स्वयं कहते हैं कि परिणाम नहीं है। परिणाम मापें, svn प्रोग्रामर आलस्य नहीं।
जोड़ा लेखक Will, स्रोत
बहुत ही हल्की और कुशल प्रतिलिपि सुविधा। हां! नहीं, वास्तविक फाइलों की प्रतिलिपि हेवीवेट है और आप एसवीएन रेपो के लिए इंतजार करने के लिए प्रतीक्षा घंटे कैसे समाप्त करते हैं। गिट इत्यादि बहुत हल्के और कुशल हैं क्योंकि वे शाखाएं बनाते समय केवल संदर्भों की प्रतिलिपि बनाते हैं। लिखने पर नकल।
जोड़ा लेखक Will, स्रोत
यह भी ध्यान रखें कि "ट्रंक" की उप-निर्देशिकाओं को टैग या शाखा करना आमतौर पर एक बुरा विचार है। इससे ट्रैक रखना मुश्किल हो जाता है कि किस उपनिर्देशिका को ब्रांच किया गया था, और अधिकांश शाखाएं इन शाखाओं से भ्रमित हो जाएंगी (उदाहरण के लिए स्विचिंग शाखाओं का मतलब डब्ल्यूसी परिवर्तनों की निर्देशिका संरचना होगी, जो आईडीई को भ्रमित करेगा और उपकरण बनायेगा)। बस हमेशा "ट्रंक" शाखा।
जोड़ा लेखक sleske, स्रोत
@ वास्तव में सुविधा हल्की होगी। और भी कुशल। परिणाम नहीं है। जीआईटी की सुविधा भारी है, क्योंकि यह बहुत गणना करता है और न सिर्फ एक प्रति है, बल्कि नतीजा हल्का है क्योंकि यह सब कुछ कॉपी करने का उपर नहीं है
जोड़ा लेखक inetphantom, स्रोत
वाह यह भयानक है।
जोड़ा लेखक shinzou, स्रोत
"svn copy" का लाभ यह है कि यह शाखा के पिछले इतिहास को बनाए रखेगा। मैन्युअल रूप से दूसरी निर्देशिका में कॉपी करना नहीं होगा।
जोड़ा लेखक WhyNotHugo, स्रोत
"नहीं, वास्तविक फाइलों की प्रतिलिपि हेवीवेट है और आप एसवीएन रिपोज़ के लिए इंतजार करने के लिए प्रतीक्षा घंटे कैसे समाप्त करते हैं।" यह बल्कि खतरनाक लगता है। क्या आप एक विशाल परियोजना का प्रबंधन करने के लिए एसवीएन का उपयोग कर रहे हैं? या आप एक वैन कनेक्शन पर एक बड़ी परियोजना की शाखा बनाने की कोशिश कर रहे हैं? मैंने कई एसवीएन परियोजनाओं के साथ काम किया है जो बड़े थे लेकिन कभी भी शाखा को पूरा करने के लिए घंटों तक इंतजार नहीं करना पड़ा।
जोड़ा लेखक AhiyaHiya, स्रोत
@AhiyaHiya जो भी मामला है, वास्तविक फ़ाइलों की तुलना में डेल्टा की प्रतिलिपि बनाना हमेशा बेहतर होता है। डेल्टा फ़ाइलों से अधिक भार नहीं कर सकते हैं। एक कठिन कार्यक्रम के लिए एक कठिन आदेश।
जोड़ा लेखक Winter, स्रोत
@Will, आपको वास्तव में फ़ाइलों की प्रतिलिपि बनाने की आवश्यकता नहीं है। ज्यादातर मामलों में आपको बस svn copy svn: // server / trunk svn: // server / branch और फिर svn स्विच svn: // server / branch की आवश्यकता है। यह तेज़ है।
जोड़ा लेखक Alex Che, स्रोत
@ वास्तव में <�कोड> svn cp सस्ती प्रतियों का उपयोग करता है, यह नहीं शाखाओं के दौरान वास्तविक फ़ाइलों की प्रतिलिपि बनाता है। svnbook.red-bean.com/en/1.1/ch04s02.html</देखें एक>
जोड़ा लेखक Walty Yeung, स्रोत
svn cp /trunk/ /branch/NEW_Branch

यदि आपके पास ट्रंक में कुछ स्थानीय परिवर्तन हैं तो परिवर्तनों को सिंक करने के लिए Rsync का उपयोग करें

rsync -r -v -p --exclude ".svn" /trunk/ /branch/NEW_Branch
0
जोड़ा
@ केविनपैंको यह असामान्य परिवर्तनों की प्रतिलिपि नहीं करेगा।
जोड़ा लेखक Parag Bafna, स्रोत
मैं इसके बारे में सोच रहा हूँ। यह सबसे आसान विकल्प की तरह लगता है, और एएफएआई याद है, यह वही है जब मैंने 3 साल पहले एसवीएन के साथ काम किया था। लेकिन सर्वर और यूआरएल के साथ सीधे काम करने वाले लोगों के बीच क्या अंतर है?
जोड़ा लेखक oligofren, स्रोत
यह करता है, svn, संस्करण 1.8.5 के साथ पुष्टि की
जोड़ा लेखक Kevin Panko, स्रोत
इस तरह से rsync का उपयोग करने की कोई आवश्यकता नहीं है। svn cp किसी भी स्थानीय परिवर्तन की प्रतिलिपि भी करेगा।
जोड़ा लेखक Kevin Panko, स्रोत

यदि आप रेपो हैं https के माध्यम से उपलब्ध हैं, तो आप इस आदेश का उपयोग शाखा में कर सकते हैं ...

svn copy https://host.example.com/repos/project/trunk \
       https://host.example.com/repos/project/branches/branch-name \
  -m "Creating a branch of project"
0
जोड़ा

मान लीजिए कि आप एक ट्रंक नाम से शाखा बनाना चाहते हैं (जैसे "टेस्ट") फिर उपयोग करें:

svn cp -m "CREATE BRANCH TEST" $svn_url/trunk $svn_url/branches/TEST
0
जोड़ा

नए एसवीएन उपयोगकर्ताओं के लिए शीर्ष युक्ति; यह सही यूआरएल जल्दी से प्राप्त करने में थोड़ा सा मदद कर सकता है।

मौजूदा चेक-आउट शाखा के बारे में उपयोगी जानकारी प्रदर्शित करने के लिए svn info चलाएं।

यूआरएल (यदि आप रूट फ़ोल्डर में svn चलाते हैं) आपको वह यूआरएल दें जो आपको कॉपी करने की आवश्यकता है।

नव निर्मित शाखा में स्विच करने के लिए, svn switch कमांड का उपयोग करें:

svn switch http://my.repo.url/myrepo/branches/newBranchName
0
जोड़ा
आप रिपोजिटरी रूट के स्थान पर ^ ^ का भी उपयोग कर सकते हैं
जोड़ा लेखक chim, स्रोत
  • Create a new folder outside of your current project. You can give it any name. (Example: You have a checkout for a project named "Customization". And it has many projects, like "Project1", "Project2"....And you want to create a branch of "Project1". So first open the "Customization", right click and create a new folder and give it a name, "Project1Branch").
  • Right click on "Myproject1"....TortoiseSVN -> Branch/Tag.
  • Choose working copy.
  • Open browser....Just right of parallel on "To URL".
  • Select customization.....right click then Add Folder. and go through the folder which you have created. Here it is "Project1Branch". Now clik the OK button to add.
  • Take checkout of this new banch.
  • Again go to your project which branch you want to create. Right click TorotoiseSVN -> branch/tag. Then select working copy. And you can give the URL as your branch name. like {your IP address/svn/AAAA/Customization/Project1Branch}. And you can set the name in the URL so it will create the folder with this name only. Like {Your IP address/svn/AAAA/Customization/Project1Branch/MyProject1Branch}.
  • Press the OK button. Now you can see the logs in ...your working copy will be stored in your branch.
  • Now you can take a check out...and let you enjoy your work. :)
0
जोड़ा