2011-09-14 61 views
2

我有一個包含文件的目錄data-files-dir具有以下擴展名:如何僅使用.hgignore排除二進制文件?

# binary types 
.dat 
.dat.gz 
.csv 

# script files 
.bat 
.yaml 

我想排除包含的價值,我不想存儲在水銀千兆字節的數據的二進制文件。

但我想要由Mercurial記錄腳本文件。

到目前爲止,我所能做的最好的是採用這種.hgignore文件排除整個目錄:

syntax: glob 
data-files-dir/** 

但我再也不能從水銀排除這些腳本文件。

我如何讓Mercurial跟蹤腳本文件而不是二進制文件?

+1

CSV不是二進制格式。 – geoffspear

+0

我在想 - 但是我認爲CSV文件太大了,不用擔心包含。 – icabod

回答

3

修改hgignore中指定的示例,以下操作不起作用嗎?

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

這也會忽略'data-files-dir'目錄之外的文件,這可能是不希望的。我會建議添加路徑。 – icabod

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文件與上述忽略。

2

您可以使用regexp語法忽略這些文件以更加簡潔。以下示例.hgignore文件同時使用了globregexp語法。 glob條目忽略binobj目錄下的所有內容。 regexp項目忽略data-files-dir下以括號中列出的擴展名結尾的所有文件。

syntax:glob 
bin/** 
obj/** 

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