Mercurial:我可以重命名一個分支嗎?


Answers

對於未來的讀者:通過延期續約,您可以創建一個與分支歷史相同的新分支,並將整個分支歷史記錄移至該分支,如下所示:

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

這假設stiging只有一個父母。 當然你可以直接使用明確的修訂版本號。

注1:如果分支stiging包括與其他分支合併,我認為這將保留它們,只要stagingstiging具有相同的父項。 但我肯定會仔細檢查。

注2:由於這會編輯歷史記錄,舊分支不會簡單地從克隆存儲庫中消失(請參閱rebase文檔)。 除非每個人都可以重新克隆,否則對於一個大群體來說,這可能不是一個很實際的解決方案

Note3 / Edit(禮貌@JasonRCoombs):現在phases在mercurial中是標準的, rebase會拒絕修改已經推送的變更集。 要么通過將階段更改為草稿(使用hg phases ),或者讓舊分支停留在原來的位置來製作一個正確命名的副本(例如,使用`hg rebase --keep')來欺騙它。

Question

我們現在有一個“鼓舞人心”的分支,“分期”似乎是一個更好的語義契合。 處理這個問題的好策略是什麼?




製作一個名為“舞台”的新分支,並忘記其他......