2011-09-14 6 views
2

私は、次の拡張子を持つファイルを含むディレクトリdata-files-dirを持っている:.hgignoreを使用してバイナリファイルのみを除外する方法は?

# binary types 
.dat 
.dat.gz 
.csv 

# script files 
.bat 
.yaml 

私はMercurialの中に保存されたくないデータの価値ギガバイトが含まれているバイナリファイルを除外したいです。

しかし、私はMercurialによって記録されたスクリプトファイルを持っています。

syntax: glob 
data-files-dir/** 

しかし、私はもはやMercurialのからこれらのスクリプトファイルを除外する余裕ができます。

これまでのところ、私は何ができる最善のは、この.hgignoreファイルを使用してディレクトリ全体を除外していないです。

どのようにして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エントリは、binおよびobjディレクトリの下のすべてを無視します。 regexpは、末尾が括弧で囲まれたdata-files-dirのファイルをすべて無視します。

syntax:glob 
bin/** 
obj/** 

sytnax:regexp 
data-files-dir/.+\.(dat|gz|csv) 
関連する問題