2013-04-11 35 views
1

我以前(即幾個變更集之前)提交了一個相當大的變更集,其中包含我希望保留的良好更改,還有一些我想撤消。是的,無論如何,我不應該將這麼多錢包裝在一個變更集中,但是現在損失已經完成了。如何輕鬆退出部分變更集?

AFAIK,Mercurial的退貨命令只能對整個變更集進行操作。我當然可以想出如何在幾個步驟中手動執行此操作,但是我想知道:是否有一種簡單的方法可以將變更集的部分顛倒過來?

(如果它的事項,我想撤消改變文件刪除。)

回答

1

我應該在發佈前都試過了,但是這可能是對別人有用的:

回退沒有按」 t自動提交。因此,對我而言,這種方法是運行hg退出,然後簡單地還原我不想改回的文件。

1

根據條件(兩種情況下的「必須退出」和「必須保留」或文件模式的數量),您可以使用hg backout和-I(包括掩碼)或-X(不包括掩碼)選項

  • hg backout -r CSET -I FILE退出僅更改 FILE
  • hg backout -r CSET -X FILE退出所有更改,除非 FILE
+0

謝謝,這看起來非常有用。在我的情況下,在TortoiseHg工作臺中點擊並點擊文件更容易,但在某些情況下,模式方法可能非常方便。 – HansMari 2013-04-11 09:34:11

0

如果您想撤消文件刪除,那麼這將是更好地使用hg revert而不是hg backout

hg status --change CSET --removed -n0 | xargs -0 hg revert --rev CSET^1