2011-05-13 46 views
1

是否可以使用.hgignore在mercurial中忽略由idl文件生成的头文件?mercurial:忽略从.idl生成的.hh

我在VS2008中有一个非常大的项目,默认情况下,midl工具从同一文件夹中的.idl文件生成.h文件并具有相同的名称。当然,我不希望生成的文件受到控制。如果在同一文件夹中有xxx.idl文件,可以配置mercurial忽略xxx.h文件吗?

有没有其他解决方案来解决我的问题?重命名这些〜100个项目的文件需要很长时间,并不是我想考虑的选项...

回答

2

正如stevevls指出的,你可以忽略所有.h文件,然后手动添加你想跟踪的.h文件(hg add覆盖忽略)。

另一种选择是手动或用钩子把这样的事情在你.hg/hgrc

[ui] 
ignore.generated = .hgignore-generated 

,然后创建一个文件,以便它列出了所有生成的.h文件。您可以选择跟踪或不跟踪文件。在Unix上会自动创建一个文件:

find . -name '*.idl' | sed 's/\.idl$/.h/ >| .hgignore-generated 

我不知道如何编写脚本,在Windows上,但人们想象的PowerShell可以做到这一点。

0

是的,这是可能的。 .gigignore非常灵活,可以接受globs和regexes。你也许可以蒙混过关:

syntax:glob 
*.h 

在这里看到更多的细节:http://www.selenic.com/mercurial/hgignore.5.html

+0

对不起,我没有说清楚。有很多正常(不生成).h文件,我不想忽略。 – Vlasta 2011-05-13 09:16:54

+1

我明白了。在这种情况下,如果你无法用模式或特定位置识别你的文件,mercurial并不能真正帮助你。如果您可以将某个midl工具挂钩到某处,则可以尝试使用.hgignore文件的程序化创建... – stevevls 2011-05-13 09:21:02