2011-11-08 48 views
5

Ho刪除mercurial中的所有* .bak或* .orig文件?hg remove -I PATTERN,它是如何工作的?

例如:

C:\dev\web>hg stat 
? Views\System\UnderConstruction.cshtml.bak 
? Views\Topic\Index.cshtml.bak 
? Views\Topic\MasterPage.cshtml.bak 
? Web.config.bak 

C:\dev\web>hg rem -I *.bak 
abort: no files specified 

回答

5

hg remove只會刪除已提交的文件。 AFAIK,mercurial沒有命令可以刪除未跟蹤的文件。

要了解文件模式如何在mercurial中運行,請運行hg help patterns

+0

+1對於hg幫助模式的建議 – nwahmaet

2
  1. 未跟蹤的文件(「?」符號)可以通過OS刪除,不善變
  2. 你要離開文件作爲是,只需添加圖案.hgignore和它的文件後,匹配模式,不會衝擊片雷管在hg status
  3. 刪除跟蹤李明博正確 remove命令和原稿文件將hg remove -I **.bak -I **.orig
1

你應該看看hg purge分機:

刪除Mercurial未知的文件。這對測試否則乾淨的源代碼樹中的未提交更改本地和 很有用。

這意味着,清除會刪除:

  • 未知文件:標有文件 「?」通過「汞狀態」
  • 空目錄:其實水銀忽略的目錄,除非它們包含在源代碼控制管理

文件,但它會離開不變:

  • 改性和未改性跟蹤的文件
  • 忽略的文件(除非 - 指定了所有文件)
  • 將新文件添加到存儲庫(帶「hg add」)

如果目錄是在命令行上給出的,只有在這些 目錄中的文件被認爲是。

請謹慎清除,因爲您可能會不可逆轉地刪除某些您忘記添加到存儲庫中的文件 。如果您只想打印該程序將刪除的文件列表 ,請使用--print選項。

0

你可以做以下兩條命令:

D:\workspace>hg purge -I **/*.orig --all 

然後:

D:\workspace>hg purge -I **/*.bak --all 

跟蹤文件不會被刪除,但我猜這不是你的問題。確保在運行此操作之前啓用清除擴展,並且可以使用--print參數進行幹運行。