উত্তর:
সাবভারশনে ব্রাঞ্চিং খুব হালকা এবং দক্ষ অনুলিপি সুবিধা দ্বারা সহজতর হয়।
ব্রাঞ্চিং এবং ট্যাগিং কার্যকরভাবে একই। svn copyকমান্ডটি ব্যবহার করে কেবল সংগ্রহস্থলের কোনও পুরো ফোল্ডারটি অনুলিপি করতে পারেন ।
মূলত এর অর্থ হ'ল এটি কনভেনশন দ্বারা কোনও ফোল্ডার অনুলিপি করার অর্থ কী - তা ব্যাকআপ, ট্যাগ, শাখা বা যা কিছু হোক। আপনি কীভাবে জিনিসগুলি সম্পর্কে ভাবতে চান তার উপর নির্ভর করে (সাধারণত আপনি অতীতে কোন এসসিএম সরঞ্জামটি ব্যবহার করেছেন তার উপর নির্ভর করে) আপনার স্টাইলকে সমর্থন করার জন্য আপনার ভাণ্ডারের মধ্যে একটি ফোল্ডার কাঠামো স্থাপন করতে হবে।
প্রচলিত শৈলী নামক আপনার সংগ্রহস্থলের উপরের ফোল্ডার একটি গুচ্ছ আছে হয় tags, branches, trunkআপনি আপনার পুরো কপি করতে দেয় - ইত্যাদি trunkমধ্যে (অথবা উপ-সেট) tagsএবং / অথবা branchesফোল্ডার নেই। আপনার যদি একাধিক প্রকল্প থাকে তবে আপনি প্রতিটি প্রকল্পের আওতায় এই ধরণের কাঠামোটি প্রতিলিপি করতে চাইতে পারেন:
ধারণাটি ব্যবহারে কিছুটা সময় নিতে পারে - তবে এটি কার্যকর - কেবলমাত্র নিশ্চিত হন যে আপনি (এবং আপনার দল) আপনি যে সম্মেলনগুলি ব্যবহার করতে যাচ্ছেন সে সম্পর্কে পরিষ্কার clear একটি নামকরণের একটি ভাল কনভেনশন রাখাও একটি ভাল ধারণা - যা আপনাকে শাখা / ট্যাগ কেন তৈরি হয়েছিল এবং এটি এখনও যথাযথ কিনা তা আপনাকে জানায় - অপ্রচলিত শাখা সংরক্ষণাগারগুলির উপায়গুলি বিবেচনা করুন।
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। (আমি ঠিকানাগুলি প্রতিস্থাপিত, কিন্তু তারা কি করতে বিদ্যমান, ছাড়া, Ofc, নতুন শাখা ডিরেক্টরি, এবং গোটা পাথ + + URL কোনো কারণে SVN ভুলবশত মার্জ) যে ।
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
সাধারণত আপনি এটি এসএনএন + এসএসএস: //host.example.com/repos/project/branches/mybranch এ অনুলিপি করে রেখেছিলেন যাতে আপনি বেশ কয়েকটি শাখা সংগ্রহস্থলে রাখতে পারেন তবে আপনার বাক্য গঠন বৈধ is
আপনার সংগ্রহস্থল বিন্যাসটি কীভাবে সেট আপ করবেন সে সম্পর্কে এখানে কিছু পরামর্শ ।
নতুন এসভিএন ব্যবহারকারীদের জন্য শীর্ষ পরামর্শ; এটি সঠিকভাবে ইউআরএলগুলি দ্রুত পাওয়ার সাথে কিছুটা সহায়তা করতে পারে।
চালান svn infoবর্তমান চেক-আউট শাখা সম্পর্কে দরকারী তথ্য প্রদর্শন করতে ।
ইউআরএলটি (যদি আপনি রুট ফোল্ডারে এসএনএন চালনা করেন) আপনাকে কপি করা URL টি দেওয়া উচিত।
সদ্য নির্মিত শাখায় স্যুইচ করতে, svn switchকমান্ডটি ব্যবহার করুন :
svn switch http://my.repo.url/myrepo/branches/newBranchName
এমনকি আপনি যদি নিজের শাখাটি মার্জ করার পরিকল্পনা করেন তবে আমি আপনাকে এটিকে দেখার পরামর্শ দিচ্ছি:
আমি শুনি সাবভারশন 1.5 আরও একত্রীকরণের ট্র্যাকিং তৈরি করে, এর সাথে আমার কোনও অভিজ্ঞতা নেই। আমার প্রকল্পটি 1.4.x এ চলছে এবং এসএনএনএম.পি লাইফ সেভার!
উইন্ডোজ মেশিনে টরটোইজএসভিএন ব্যবহার করে ট্রাঙ্ক থেকে একটি শাখা তৈরি করার পদক্ষেপগুলি নীচে দেওয়া হয়েছে। স্পষ্টতই এটি ইনস্টল করার জন্য TortoiseSVN ক্লায়েন্ট প্রয়োজন।