2012-09-13 43 views
0

由於我正在進行本地更改,每次都會發現我想撤銷先前修訂中所做的更改從一個特定的文件,而我正處於一系列變化的中間。例如:在Mercurial中存在未完成的本地更改時,撤銷對單個文件的更早更改

  • R1000 - 改變文件A和B
  • ... - 任意數量的中間變化
  • 工作副本:傑出更改多個文件

在這一點上,我意識到我想完全撤消對r1000中文件A的更改,作爲我正在進行的更改的一部分。

如果我沒有任何本地更改,我可以使用hg backout。我已經使用hg revert -r "1000^" A試過,但我得到關於不影響1000

父變更的消息那麼什麼是恢復從單個文件在以前變更爲一部分的變化的最佳方式我目前的變化?

回答

1

所以當我寫這篇文章的時候,我碰到了hg diff命令中的--reverse標誌。結合這一想法與hg import在關注的例子給出了這樣的命令:

hg diff -c 1000 -I A --reverse | hg import --no-commit --force - 

這將在R1000爲單一目標的文件變化的撤消的修補軟件,然後傳遞,爲hg import被應用於當前工作目錄沒有提交。

+0

+1個很酷的解決方案,儘管我個人寧願擱置工作進展中的'hg backout'版本,並且恢復架子,以便歷史清楚。 –

相關問題