2012-08-07 60 views
0

也許我錯過了一些重要的東西,但我想切換到另一個分支,而不必先提交我目前擁有的東西。我意識到我可以使用hg update -C,並簡單地刪除當前的更改,但這不是我想要做的。HG更新需要分支合併

我的問題是,我有幾個分支,我正在同時工作,不想填補我的歷史與大量的小提交。有沒有一箇中間的基礎,我可以存儲我當前的分支,而無需承諾在某些情況下做出的每個小改動。

回答

1

除了已經提到的shelve選項的選項以及歷史記錄中有很多小的變更集外,您還可以使用collapse擴展名來獲取這些小的變更集,並將它們合併爲一個較大的變更集。這非常適合您描述的場景 - 修正拼寫錯誤等。

使用Mercurial 2.1及更高版本,摺疊擴展將尊重phases,因此您不會無意中摺疊已發佈的更改集。

一般來說,我會主張在一個單獨的命名分支上做所有這些小改動,然後在你感到高興的時候合併到默認(或其他功能)分支。

+0

順便說一下,崩潰擴展現在可以通過'hg rebase --collapse -r --dest 中的第一個rev的父親進行大量替換。 – 2012-09-21 21:11:44

2

shelve extension可以做你想做什麼:

從頁面:

暫時離開藏匿的變化。您可以選擇要擱置的更改的確切人羣 。

汞柱擱置

暫時離開藏匿的變化。所有的hunks將自動被選中 。

汞柱擱置--all

獲取更改回復到工作目錄的。

汞柱取消擱置

如果使用--name選項,你可以擱置在不同的貨架上不同的變化。

但是,很多小提交有什麼問題?如果這些更改獨立,那麼他們可能應該承諾提交,如果您想保持清醒的話,您確實不希望在簽入時插入多個問題,特別是如果您以後要將功能合併到其他倉庫中時更是如此。

+0

在許多情況下,我的提交包含拼寫錯誤和樣式更改。 – Blackninja543 2012-08-07 20:29:59

0

讓每個分支簽出它自己的克隆。你可以在它們之間切換而不需要做任何事情。

相關問題