無視ファイルで使用される構文は、システムごとに異なります。
さらに、シェル パターンと正規表現がどのように一致するかについての正確な規則は、ツールごとに異なります。全体として、これは、グローバルな無視ファイルが非常に単純な場合にのみ、このトリックを使用できることを意味します。そうしないと、あなたが言うように、違いが来てあなたを噛む可能性があります。
このファイルでテストしました:
syntax: glob
.bzr
.git
.hg
*.o
*~
3 つのツールすべてで意図したとおりに動作するようです。テストするために、次のディレクトリ ツリーを作成しました。
$ tree
.
|-- foo.c
|-- foo.c.~1~
|-- foo.h
|-- foo.o
`-- src
|-- bar.c
|-- bar.c.~1~
`-- bar.o
各ツールのステータス コマンドを実行します。
$ for tool in hg git bzr; do echo "== $tool status =="; $tool status; done
== hg status ==
? foo.c
? foo.h
? src/bar.c
== git status ==
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# foo.c
# foo.h
# src/
nothing added to commit but untracked files present (use "git add" to track)
== bzr status ==
unknown:
foo.c
foo.h
src/
ご覧のとおり、この単純なファイルは正常に機能します。
技術的には、Git と Bazaar はsyntax: glob
. $HOME/.hgignore
最後に、Mercurial はデフォルトではファイルを読み取らないことに注意してください。ただし、追加することで読み取らせることができます
[ui]
ignore.my-default = ~/.hgignore
あなたの$HOME/.hgrc
ファイルに。