我有一个目录data-files-dir
,其中包含以下扩展名的文件:
# binary types
.dat
.dat.gz
.csv
# script files
.bat
.yaml
我想排除包含我不想存储在Mercurial中的千兆字节数据的二进制文件。
但我想让Mercurial记录脚本文件。
到目前为止,我能做的最好的事情就是使用这个.hgignore
文件排除整个目录:
syntax: glob
data-files-dir/**
但我再也不能从Mercurial中排除这些脚本文件了。
如何让Mercurial跟踪脚本文件而不是二进制文件?
答案 0 :(得分:3)
修改hgignore中指定的示例,以下操作无效吗?
syntax: glob
*.dat
*.dat.gz
*.csv
答案 1 :(得分:2)
您可以使用regexp语法忽略这些文件,使其更简洁。以下示例.hgignore
文件使用glob
和regexp
语法。 glob条目忽略bin
和obj
目录下的所有内容。 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
文件。