2012-10-31 42 views
0

我意外地更新爲之前的修訂版本,並在默認分支下提交,在默認分支下導致2個頭。我想將其中一個頭移到另一個分支。我想移動的這個頭是在幾次交易之前完成的。我怎樣才能改變它所屬的分支,這樣我就可以在沒有強制推送的情況下將另一個頭部推送到服務器?如何刪除烏龜中的'分支'HG

到目前爲止我還沒有推送任何內容到服務器。如果涉及到它,我可以複製我需要的文件並重新登錄存儲庫。

回答

0

您可以使用變更擴展名重寫歷史記錄。它已經安裝,你只需要啓用它(從文件>設置>擴展在tortoiseHG)。在tortoiseHG裏面你可以找到它,如果你右鍵點擊一個修訂版本,進入「修改歷史記錄」,選擇「rebase」。但對於更多的控制,我建議下降到命令行。

比方說,您有一個修訂w這是一個新的默認分支頭。 (w可能有後代會隨之移動)。

-o-o-o-o 
    \ 
    w 

其母公司應該已經在另一個分支一部分修改b(未顯示)。只需輸入:

hg rebase --source w --dest b --detach 

就是這樣!它將重新編號w及其所有後代(如果有的話),以便其新的父項爲b。它將被分配到與b相同的分支名稱,除非您添加--keepbranches。標誌--detach可確保在某些情況下不會出現複雜的拓撲結構。

0
  1. 再次基於
  2. 移植(移動到新的地方)+ Histedit(殺死舊變更)
  3. MQ,如果你知道它(轉換CSET到MQ-補丁,更新到新的母公司,qpop,qfinish)