branch - Mercurial:هل يمكنني إعادة تسمية فرع؟




dvcs (5)

إنشاء فرع جديد يسمى "التدريج" ونسيان الآخر ...

لدينا الآن فرع "stiging" ، حيث يبدو أن "التدريج" أفضل من الناحية اللغوية. ما هي الإستراتيجية الجيدة للتعامل مع هذا؟


بالنسبة إلى القراء المستقبليين: باستخدام امتداد rebase ، يمكنك إنشاء فرع جديد بنفس الوالد مثل stiging ونقل سجل الفرع بالكامل إليه ، على النحو stiging :

hg update -r "parents(min(branch('stiging')))"
hg branch staging
hg commit
hg rebase --source "min(branch('stiging'))" --dest staging

هذا يفترض أن stiging لديه أحد الوالدين فقط. بالطبع يمكنك فقط استخدام أرقام المراجعة الصريحة بدلاً من ذلك.

ملاحظة 1: إذا كان stiging الفرع يحتوي على دمج مع فروع أخرى ، أعتقد أن هذا stiging عليها ، طالما أن staging stiging لهما نفس الوالد. لكنني بالتأكيد سوف تحقق مرة أخرى.

ملاحظة 2: بما أن هذه التعديلات تعد محفوظات ، فإن الفرع القديم لن يختفي ببساطة من مستودعات المستنسخة (انظر وثائق rebase ). ما لم يتمكن الجميع من الاستنساخ من جديد ، فقد لا يكون ذلك حلاً عمليًا لمجموعة كبيرة.

Note3 / Edit (بإذن منJasonRCoombs): الآن بعد أن تكون phases قياسية في الزئبقي ، سيرفض rebase تعديل التعديلات التي تم دفعها بالفعل. إما أن تخدعها بتغيير المرحلة إلى المسودة (مع hg phases ) ، أو ترك الفرع القديم في مكانه ، وإجراء نسخة مسماة بشكل صحيح (على سبيل المثال ، مع `hg rebase --keep ').


تحديث لفرع 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

إذا كان لديك تغييرات على ذلك ، فسيتعين عليك استخدام الامتداد convert ب a branchmap لإعادة تسميته. سيضطر الجميع بعد ذلك إلى استنساخ الريبو أو الشريط الجديد من الفرع القديم.


أنا فقط وضعت هذا في قسم الأسماء المستعارة .gitconfig وأحب كيف يعمل:

pub = "!f() { git push -u ${1:-origin} `git symbolic-ref HEAD`; }; f"

سيدفع الفرع الحالي إلى الأصل مع git pub أو آخر الريبو مع git pub repo-name . طيب المذاق.





mercurial branch dvcs