বৃহত্তম পার্থক্য হ'ল কীভাবে শাখার নাম ইতিহাসে রেকর্ড করা হয়। নামযুক্ত শাখাগুলির সাথে শাখার নামটি প্রতিটি চেঞ্জসেটে এম্বেড করা হয় এবং এইভাবে ইতিহাসের অপরিবর্তনীয় অংশে পরিণত হবে। ক্লোনগুলির সাথে কোনও স্থায়ী থাকবে না নির্দিষ্ট পরিবর্তনটি কোথা থেকে এসেছে রেকর্ড ।
এর অর্থ হ'ল ক্লোনগুলি দ্রুত পরীক্ষার জন্য দুর্দান্ত যেখানে আপনি কোনও শাখার নাম রেকর্ড করতে চান না এবং নামযুক্ত শাখা দীর্ঘমেয়াদী শাখাগুলির জন্য ভাল ("1.x", "2.x" এবং অনুরূপ)।
এটিও নোট করুন যে কোনও একক সংগ্রহস্থল সহজেই মার্চুরিয়ালে একাধিক হালকা ওজনের শাখাগুলিকে সংযুক্ত করতে পারে। এগুলিতে os সংগ্রহস্থল শাখাগুলি বুকমার্ক করা যায় যাতে আপনি সহজেই সেগুলি আবার খুঁজে পেতে পারেন। ধরা যাক যে আপনি যখন কোম্পানির ভান্ডারটিকে এমন দেখাচ্ছে তখন আপনি ক্লোন করেছেন:
[a] --- [b]
আপনি দূরে হ্যাক এবং তৈরি [x]
এবং [y]
:
[a] --- [b] --- [x] --- [y]
কেউ যখন রাখে [c]
এবং[d]
সংগ্রহশালায় , তারপরে আপনি যখন টানেন তখন আপনি একটি ইতিহাস গ্রাফ পাবেন:
[এক্স] --- [y]
/
[এ বি সি ডি]
এখানে একক ভাণ্ডারে দুটি মাথা রয়েছে। আপনার কাজের অনুলিপি সর্বদা একটি একক চেঞ্জসেট প্রতিবিম্বিত হবে, তথাকথিত ওয়ার্কিং কপির প্যারেন্ট চেঞ্জসেট। এটি দিয়ে পরীক্ষা করুন:
% hg parents
এর রিপোর্ট যে বলা যাক [y]
। আপনি মাথা দেখতে পারেন
% hg heads
এবং এটি রিপোর্ট করবে [y]
এবং [d]
। আপনি যদি আপনার সংগ্রহস্থলটিকে একটি পরিষ্কার চেকআউটে আপডেট করতে চান [d]
, তবে কেবল করুন (এর [d]
জন্য সংশোধন নম্বরটির বিকল্প [d]
):
% hg update --clean [d]
তারপরে আপনি সেই hg parents
প্রতিবেদনটি দেখতে পাবেন [d]
। এর অর্থ হ'ল আপনার পরবর্তী প্রতিশ্রুতি [d]
অভিভাবক হিসাবে থাকবে । আপনি মূল শাখায় লক্ষ্য করে এমন একটি বাগটি ঠিক করতে পারেন এবং পরিবর্তনটি তৈরি করতে পারেন [e]
:
[এক্স] --- [y]
/
[এ] --- [খ] --- [সি] --- [ডি] --- [ই]
[e]
শুধুমাত্র চেঞ্জসেটটি পুশ করতে , আপনাকে তা করতে হবে
% hg push -r [e]
[e]
চেঞ্জসেট হ্যাশ কোথায় ডিফল্টরূপে hg push
কেবল ভান্ডার তুলনা করিয়া দেখ, হবে [x]
, [y]
এবং [e]
অনুপস্থিত, কিন্তু আপনি ভাগ করতে চাইতে পারেন [x]
এবং [y]
এখনো।
যদি বাগফিক্স আপনাকে প্রভাবিত করে তবে আপনি এটিকে আপনার বৈশিষ্ট্য শাখার সাথে একীভূত করতে চান:
% hg update [y]
% hg merge
এটি আপনার সংগ্রহস্থল গ্রাফটি দেখতে এমনভাবে ছাড়বে:
[এক্স] --- [y] ----------- [জেড]
/ /
[এ] --- [খ] --- [সি] --- [ডি] --- [ই]
কোথায় এবং [z]
মধ্যে একত্রীকরণ । আপনি শাখাটি ফেলে দিতে পছন্দ করতে পারেন:[y]
[e]
% hg strip [x]
আমার এই গল্পের মূল বিষয়টি হ'ল: একটি একক ক্লোন সহজেই বিকাশের বেশ কয়েকটি ট্র্যাক উপস্থাপন করতে পারে। এটি কোনও এক্সটেনশন ব্যবহার না করে "প্লেইন এইচজি" এর পক্ষে সর্বদা সত্য। যদিও বুকমার্কস এক্সটেনশন একটি দুর্দান্ত সহায়তা। এটি আপনাকে চেঞ্জসেটগুলিতে নাম (বুকমার্ক) নির্ধারণের অনুমতি দেবে। উপরের ক্ষেত্রে আপনি আপনার বিকাশের মাথায় এবং একটি উজানের মাথায় একটি বুকমার্ক চাইবেন। বুকমার্কগুলি মার্শিয়াল 1.6 এর সাথে ধাক্কা এবং টান দেওয়া যায় এবং মার্চুরিয়াল 1.8 এ একটি অন্তর্নির্মিত বৈশিষ্ট্যে পরিণত হয়েছে।
আপনি যদি দুটি ক্লোন তৈরি করতে পছন্দ করেন, আপনার বিকাশ ক্লোনটি তৈরির পরে এমন দেখাবে [x]
এবং [y]
:
[a] --- [b] --- [x] --- [y]
এবং আপনার আপস্ট্রিম ক্লোন এতে থাকবে:
[a] --- [b] --- [c] --- [d]
আপনি এখন বাগটি লক্ষ্য করুন এবং এটি ঠিক করুন। hg update
আপস্ট্রিম ক্লোনটি ব্যবহারের জন্য প্রস্তুত হওয়ায় এখানে আপনার দরকার নেই । আপনি প্রতিশ্রুতিবদ্ধ এবং তৈরি [e]
:
[a] --- [b] --- [c] --- [d] --- [e]
আপনার বিকাশের ক্লোনটিতে বাগফিক্স অন্তর্ভুক্ত করতে আপনি এটি এখানে টানুন:
[এ] --- [খ] --- [এক্স] --- [ওয়]
\
[সি] --- [ডি] --- [ই]
এবং মার্জ করুন:
[এ] --- [খ] --- [এক্স] --- [ওয়াই] --- [জেড]
\ /
[সি] --- [ডি] --- [ই]
গ্রাফটি দেখতে অন্যরকম দেখাচ্ছে তবে এর কাঠামো একই রকম এবং শেষ ফলাফলটি একই। ক্লোনগুলি ব্যবহার করে আপনাকে কিছুটা কম মানসিক বুককিপিং করতে হয়েছিল।
নামযুক্ত শাখাগুলি এখানে সত্যিই চিত্রায় আসেনি কারণ এগুলি বেশ alচ্ছিক। আমরা নামযুক্ত শাখা ব্যবহারে স্যুইচ করার আগে কয়েক বছর ধরে দুটি ক্লোন ব্যবহার করে মার্কুরিয়াল নিজেই তৈরি হয়েছিল। আমরা 'ডিফল্ট' শাখা ছাড়াও 'স্থিতিশীল' নামে একটি শাখা বজায় রাখি এবং 'স্থিতিশীল' শাখার উপর ভিত্তি করে আমাদের প্রকাশ করি। প্রস্তাবিত কর্মপ্রবাহের বিবরণের জন্য উইকিতে স্ট্যান্ডার্ড ব্রাঞ্চিং পৃষ্ঠাটি দেখুন ।