Wenn man Mercurial (Hg) als Sourcecode Management System verwendet, will man keine automatisch erzeugten Dateien in das Repository schreiben. Zum Beispiel Backup-Dateien von Texteditoren (die mit der Tilde), Objektdateien von C oder C++ usw. Dazu legt man in das Projektverzeichnis eine Datei namens .hgignore
an, in der man die Dateien oder Verzeichnisse auflistet, die Hg ignorieren soll.
# eine .hgignore-Dummydatei syntax: glob bin *.exe *~ # zur Regexp-Syntax wechseln syntax: regexp ^\.pc/
Die Syntax der Datei ist eigentlich ganz einfach. # leitet einen Kommentar ein. Mit syntax: wählt man den Pattern-Stil aus, glob steht für Shell-Stil, und regexp für Python/Perl-Regex. Innerhalb einer Datei kann man auch die syntax wechseln.
Pro Zeile kann ein Verzeichnisname, Dateiname oder ein Dateimuster stehen. Bei Dateimustern bedeutet * für „kann alles sein“.
Soll nicht ein komplettes Unterverzeichnis ignoriert werden, aber darin doch bestimmte Dateien, verweist man auf eine zusätzliche .hgignore
Datei: subinclude:path/to/subdir/.hgignore
Mit den Kommandos hg help hgignore
und hg help patterns
gibt es weiter Hilfe.
Soll eine spezielle Datei, die laut Pattern ignoriert wird, doch unter die Verwaltung von Hg kommen, muss diese Datei explizit mit hg add X
hinzugefügt werden (X ist die Datei).
Java EE Webprofile
Eine .hgignore für Java-EE-Projekte könnte so aussehen:
# .hgignore speziell fuer Java EE Web-Profile syntax: glob *~ .classpath .project target .settings .DS_Store .faces-config.xml.jsfdia MANIFEST.MF .idea *.iml
Wichtig ist das Verzeichnis target
in welches z.B. die .class- und WAR-Dateien landen. Bei Java SE wäre es unter Eclipse das Verzeichnis bin
.