2010-03-03 150 views
34

我在Mercurial中應用了大型MQ補丁。發生了什麼事是我做了qrefresh,並在我的補丁中包含了我不想包含的文件。有沒有辦法從我的補丁中刪除這些文件的更改,而無需手動編輯它?在這種情況下,如果我只是在沒有MQ的情況下工作,我所要做的就是恢復hg。從Mercurial MQ補丁中刪除文件

回答

46

的補丁適用於:

hg qrefresh -X [file1] -X [file2] ... -X [fileN] 

會取出文件1至補丁fileN。完成之後,鍵入hg status以驗證文件現在標記爲已修改,因此不再是修補程序的一部分。

+3

'-X'開關必須位於每個文件名之前。所以要刪除foo和bar,使用'hg qrefresh -X foo -X bar'。 – nmichaels 2012-03-21 20:55:25

+0

如果你想從補丁中刪除所有文件,而不是刪除每個文件,你可以運行'hg qrefresh -X'*''。你必須用'''包圍'*'字符以防止shell在mercurial之前解釋。 – 2015-03-25 20:16:06

2

我認爲你可以使用修補程序當前補丁(應用和堆棧頂部),然後hg forgethg qrefresh

而當然hg forget只是hg remove而不需要額外的選項來避免文件刪除。

0

要做到這一點,最簡單的方法是使用hg qrefresh以及除了要刪除的文件之外的所有文件 - 這些文件將在修補程序之外進行修改而不會丟棄它們。