hg删除-I PATTERN,它是如何工作的?

时间:2011-11-08 06:24:46

标签: mercurial tortoisehg

何删除mercurial中的所有* .bak或* .orig文件?

示例:

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

4 个答案:

答案 0 :(得分:5)

hg remove仅删除已提交的文件。 AFAIK,mercurial中没有命令删除未跟踪的文件。

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

答案 1 :(得分:2)

  1. 操作系统可以删除未经跟踪的文件(“?”符号),而不是Mercurial
  2. 您必须按原样保留文件,只需将模式添加到.hgignore,然后将文件添加到文件后,匹配的模式将不再适用于hg status
  3. 正确删除删除跟踪的bak和orig 文件的命令将为hg remove -I **.bak -I **.orig

答案 2 :(得分:1)

您应该查看hg purge扩展程序:

  

删除Mercurial不知道的文件。这对于测试本地和   在另外干净的源树中进行未提交的更改。

     

这意味着清除将删除:

     
      
  • 未知文件:标有“?”的文件通过“hg status”
  •   
  • 空目录:事实上,Mercurial会忽略目录,除非它们包含源代码管理
  • 下的文件   
     

但它会保持不变:

     
      
  • 修改和未修改的跟踪文件
  •   
  • 忽略的文件(除非指定了--all)
  •   
  • 添加到存储库的新文件(使用“hg add”)
  •   
     

如果在命令行上给出了目录,则只包含这些目录中的文件   目录被认为。

     

小心清除,因为你可以不可逆转地删除一些文件   忘了添加到存储库。如果您只想打印列表   该程序将删除的文件,请使用--print选项。

答案 3 :(得分:0)

您可以执行以下两个命令:

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

然后:

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

跟踪文件不会被删除,但我猜这对你来说不是问题。确保在运行之前启用了清除扩展,并且可以使用--print参数进行空运行。