如何使用.hgignore只排除二进制文件?

时间:2011-09-14 09:57:21

标签: mercurial hgignore

我有一个目录data-files-dir,其中包含以下扩展名的文件:

# binary types
.dat
.dat.gz
.csv

# script files
.bat
.yaml

我想排除包含我不想存储在Mercurial中的千兆字节数据的二进制文件。

但我想让Mercurial记录脚本文件。

到目前为止,我能做的最好的事情就是使用这个.hgignore文件排除整个目录:

syntax: glob
data-files-dir/**

但我再也不能从Mercurial中排除这些脚本文件了。

如何让Mercurial跟踪脚本文件而不是二进制文件?

3 个答案:

答案 0 :(得分:3)

修改hgignore中指定的示例,以下操作无效吗?

syntax: glob
*.dat
*.dat.gz
*.csv

答案 1 :(得分:2)

您可以使用regexp语法忽略这些文件,使其更简洁。以下示例.hgignore文件使用globregexp语法。 glob条目忽略binobj目录下的所有内容。 regexp项忽略data-files-dir下以括号中列出的扩展名结尾的所有文件。

syntax:glob
bin/**
obj/**

sytnax:regexp
data-files-dir/.+\.(dat|gz|csv)

答案 2 :(得分:1)

如果您要忽略的文件都在data-files-dir目录中,那么您可以将以下内容添加到.hgignore文件中:

glob:data-files-dir/*.dat
glob:data-files-dir/*.gz
glob:data-files-dir/*.csv

这将仅在data-files-dir目录中忽略这些文件扩展名。我只是尝试了一个快速测试,它似乎对我有用:

C:\ignoretest>dir /b data-files-dir
batch.bat
binary1.dat
binary2.dat
binary2.gz
C:\ignoretest>hg st
? .hgignore
? data-files-dir\batch.bat

因此,我的.dat文件中忽略了任何.gz.csv.hgignore文件。