153

指定したフォルダーの下にあるすべてのファイルを無視する .hgignore ファイルの式を探しています。

例: bin の下のすべてのファイルとフォルダーを無視したい

実際、表現がどのように形成されるかについてのアドバイスは素晴らしいでしょう

4

6 に答える 6

178

別の方法:

syntax: glob
bin/**
于 2008-10-31T22:05:03.483 に答える
55

いくつかの実験を行ったところ、Windows の正規表現構文は現在のリポジトリから始まるパスに適用され、バックスラッシュがスラッシュに変換されることがわかりました。

たとえば、リポジトリが E:\Dev にある場合、hg statusは foo/bar/file1.c などに対してパターンを適用します。アンカーはこのパスに適用されます。

そう:

  • グロブはパス要素に適用され、要素部分にルート化されます
  • foo は、foo という名前の任意のフォルダー (またはファイル) に一致します ("foobar" や "barfoo" には一致しません)。
  • *foo* は、名前に「foo」が含まれる任意のフォルダーまたはファイルに一致します
  • foo/bar* は、「foo」フォルダー内の「bar」で始まるすべてのファイルに一致します。


  • 正規表現は大文字と小文字が区別され、固定されていません
  • もちろん、バックスラッシュのような正規表現の特殊文字 . (ドット)
  • / は、Windows の \ パス区切り文字に一致します。\ はこのセパレータと一致しません...
  • foo は、内部に「foo」が含まれるすべてのファイルとフォルダーに一致します
  • foo/ は、「foo」で終わるフォルダーのみに一致します
  • /foo/ は、パスのどこかにあるフォルダー「foo」に一致します
  • /foo/bar/ は、パスのどこかにあるフォルダー「foo」内のフォルダー「bar」に一致します
  • ^foo は、リポジトリのルートにある foo で始まるファイルまたはフォルダーに一致します
  • foo$ は foo で終わるファイルに一致します

これがお役に立てば幸いです。HGIGNORE(5)ページは少し簡潔であることがわかりました。

于 2008-12-06T12:43:24.407 に答える
10

どちらも というディレクトリを除外しcabinますが、これはあなたが望むものではないかもしれません. トップレベルでフィルタリングしている場合は、次を使用できます。

^/bin/

ルート以下binのディレクトリの場合は、^ を省略できます。構文を指定する必要はありません。正規表現がデフォルトです。

于 2008-10-31T22:19:31.893 に答える
3

構文: glob bin/**

この回答は上に示されていますが、 * と ** の処理が異なることも付け加えたいと思います。** は再帰的ですが、* はそうではありません。

水銀パターンを見る

于 2016-11-14T22:08:07.480 に答える
2

気にしないで、私はそれを手に入れました

syntax: regexp
bin\\*

式は、標準の perl 正規表現構文に従います。

于 2008-10-31T16:09:45.447 に答える
-2

.class ファイルを無視する

syntax: regexp
?\.class
于 2008-11-21T19:53:28.540 に答える