składni w plikach ignorują różni się od systemu:
Mercurial: lista wyrażeń regularnych - mogą być zmieniane za pomocą syntax: glob
linii.
Bazar: lista wzorców globu skorupy - przedrostek z RE:
do dopasowania jako wyrażenie regularne.
Git: lista wzorców globu powłoki.
Co więcej, dokładne zasady interpretacji wzorców powłoki i wyrażeń regularnych różnią się w zależności od narzędzia. W sumie oznacza to, że możesz mieć nadzieję, że użyjesz tej sztuczki, jeśli twój globalny plik ignorowania jest całkiem prosty. W przeciwnym razie mogą pojawić się różnice i cię ugryźć, jak mówisz.
ja testowałem to z tego pliku:
syntax: glob
.bzr
.git
.hg
*.o
*~
i wydaje się, aby działać zgodnie z przeznaczeniem we wszystkich trzech narzędzi. By to sprawdzić, stworzyłem ten drzewo katalogów:
$ tree
.
|-- foo.c
|-- foo.c.~1~
|-- foo.h
|-- foo.o
`-- src
|-- bar.c
|-- bar.c.~1~
`-- bar.o
i pobiegł polecenia statusu dla każdego narzędzia:
$ 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/
Jak widać, ten prosty plik działa dobrze.
Technicznie, Git i Bazaar zignorują teraz plik o nazwie syntax: glob
, ale jeśli nie planujesz stworzyć pliku o tej dziwnej nazwie, nie ma to znaczenia. Na koniec zauważ, że Mercurial domyślnie nie czyta pliku $HOME/.hgignore
. Możesz go jednak odczytać, dodając do tego do swojego pliku .
W Mercurial możesz także zmienić pojedynczą linię na glob poprzez dodanie przedrostka 'glob:'. –
@LaurensHolst: prawy, ale tutaj chciałem, aby Mercurial traktował następujące wzorce jako wzorce globalne, ponieważ są one domyślne dla Git i Bazaar. –
Po prostu uważam za kompletny :). –