উত্তর:
stigingশাখায় আপডেট করুন এবং এটি বন্ধ করে একটি নতুন শাখা তৈরি করুন। তারপরে পুরানো শাখাটি বন্ধ করুন।
সংক্ষেপে:
hg update stiging
hg branch staging
hg commit -m"Changing stiging branch to staging."
hg update stiging
hg commit --close-branch -m"This was a typo; use staging instead."
hg push --new-branch
--force। উদাহরণস্বরূপ: hg branch --force v3। এটি আপনি যেমন চেয়েছিলেন তেমন hg update v3নতুন v3শাখায় আপডেট হওয়ার ফলস্বরূপ ।
stigingশাখার আগে বন্ধ করেন , আপনি কোনও "আলগা শেষ" পাবেন না
ভবিষ্যতের পাঠকদের জন্য: rebaseএক্সটেনশনের সাহায্যে আপনি একই পিতামাতার সাথে একটি নতুন শাখা তৈরি করতে stigingএবং পুরো শাখার ইতিহাসটিকে এখান থেকে সরিয়ে নিতে পারেন:
hg update -r "parents(min(branch('stiging')))"
hg branch staging
hg commit
hg rebase --source "min(branch('stiging'))" --dest staging
এটি ধরে নিয়েছে যে stigingকেবলমাত্র একটি পিতা বা মাতা আছে। অবশ্যই আপনি পরিবর্তে কেবল সুস্পষ্ট সংশোধন নম্বর ব্যবহার করতে পারেন।
উল্লেখ্য 1: শাখা তাহলে stigingঅন্যান্য শাখার সঙ্গে মার্জ অন্তর্ভুক্ত, আমি মনে করি যে, এই তাদের সংরক্ষণ করবে, যতদিন stagingএবং stigingএকই পিতা বা মাতা আছে। তবে আমি অবশ্যই ডাবল-চেক করব
দ্রষ্টব্য 2: যেহেতু এটি ইতিহাস সম্পাদনা করে, তাই পুরানো শাখা ক্লোন করা সংগ্রহগুলি থেকে সহজেই অদৃশ্য হয়ে যাবে না ( rebaseডকুমেন্টেশন দেখুন)। প্রত্যেকে নতুনভাবে ক্লোন করতে না পারলে বৃহত গোষ্ঠীর পক্ষে এটি খুব ব্যবহারিক সমাধান নাও হতে পারে।
নোট 3 / সম্পাদনা (সৌজন্যে @ জেসনআরকুমবস): এখন যে পর্যায়গুলি পারদর্শী হিসাবে মানক, rebaseইতিমধ্যে ঠেলাঠেলি করা পরিবর্তনগুলি সংশোধন করতে অস্বীকার করবে। হয় এটিকে পুনরায় খসড়া (সহ hg phases) এ পরিবর্তন করে বা পুরানো শাখাটি যেখানে রয়েছে সেখানে থাকতে দিন এবং একটি সঠিক নামযুক্ত অনুলিপি করুন (উদাহরণস্বরূপ, `hg রিবেস - কিপিসহ)।
hg convertপরিবর্তে ব্যবহার করুন।
--keepপুনর্বাসনা কমান্ডে যেতে হবে, যা পরিবর্তনের পরিবর্তে অনুলিপি করবে।
abort: can't rebase immutable changeset 11b1e2b7dc4f। মনে রাখবেন যে আমি অন্য একটি শাখা থেকে এই একটিতে চেঞ্জসেটগুলি গ্রাফ্ট করেছি। তদ্ব্যতীত, এটি বিভক্ত এবং বিনামূল্যে মার্জ।
.এবং আপনার --destমানের জন্য ব্যবহার করতে পারেন এবং পুনরায় নতুন শাখার নামটি স্বয়ংক্রিয়ভাবে নেওয়া হবে।
যদি আপনার এতে চেঞ্জসেট থাকে, তবে আপনাকে নতুন নামকরণের জন্য আপনাকে একটি ব্রাঞ্চম্যাপের সাথে রূপান্তর এক্সটেনশনটি ব্যবহার করতে হবে। তারপরে প্রত্যেককে নতুন রেপো ক্লোন করতে হবে বা পুরাতন শাখাটি সরিয়ে ফেলতে হবে।
এটি ইতিহাস পরিবর্তন করে এবং কেবল উন্নত মার্কুরিয়াল ব্যবহারকারীদের জন্য। এর অর্থ কী তা যদি আপনি না জানেন তবে এটি করবেন না।
যদি স্টিঙ কেবল স্থানীয় হয় তবে আপনি এটিকে গ্রাফ্ট এবং স্ট্রিপের সংমিশ্রণে মঞ্চে পরিবর্তন করতে পারবেন । পূর্বপুরুষের চেঞ্জসেটে আপডেট করে শুরু করুন যেখানে স্টিংস ডাইভার্জ হয়েছিল। স্টেজিং শাখা তৈরি করুন এবং স্টেটিং থেকে স্টেজিং পর্যন্ত প্রতিটি কমিট গ্রাফ্ট করুন। মঞ্চে এখন স্টিংসের অনুলিপি হওয়া উচিত। শেষ অবধি, তার প্রথম প্রতিশ্রুতি প্রত্যাহার করে কলঙ্ক ধ্বংস করুন।
hg update {SHA-1 of the ancestor changeset}
hg branch staging
hg graft {first changeset in stiging} ... {stiging head-1} {stiging head}
hg strip {first changeset in stiging}
hg push --new-branch
hg graft {first changeset in stiging}..{stiging head}