ignorierend Ordner in Mercurial
-
08-07-2019 - |
Frage
Caveat:
Ich versuche, alle posibilities hier aufgelistet: Wie kann ich ignorieren alles unter einem Ordner in Mercurial .
Keiner arbeitet, wie ich hoffe.
Ich möchte alles, was unter dem Ordner test
ignorieren. Aber nicht ignorieren srcProject\test\TestManager
Ich versuche
syntax: glob
test/**
Und es ignoriert test
und srcProject\test\TestManager
Mit:
syntax: regexp
^/test/
Es ist die gleiche Sache.
Auch mit:
syntax: regexp
test\\*
ich installieren TortoiseHG 0.4rc2 mit Mercurial-626cb86a6523 + TortoiseHG, Python-2.5.1, PyGTK-2.10.6, GTK-2.10.11 in Windows
Lösung
Versuchen Sie es ohne den Schrägstrich nach dem Caret in der regexp Version.
^test/
Hier ist ein Test:
~$ mkdir hg-folder-ignore
~$ cd hg-folder-ignore
~/hg-folder-ignore$ echo '^test/' > .hgignore
~/hg-folder-ignore$ hg init
~/hg-folder-ignore$ mkdir test
~/hg-folder-ignore$ touch test/ignoreme
~/hg-folder-ignore$ mkdir -p srcProject/test/TestManager
~/hg-folder-ignore$ touch srcProject/test/TestManager/dont-ignore
~/hg-folder-ignore$ hg stat
? .hgignore
? srcProject/test/TestManager/dont-ignore
Beachten Sie, dass ignoreme nicht angezeigt wird und dont-ignorieren ist.
Andere Tipps
Sie können Null-Breite negativ Vorgriff verwenden und Blick hinter Behauptungen zu spezifizieren, dass Sie test
nur ignorieren wollen, wenn es nicht von srcProject
voraus ist und nicht durch TestManager
gefolgt:
syntax: regexp
(?<!srcProject\\)test\\(?!TestManager)
Mercurial verwendet Python reguläre Ausdrücke, so können Sie weitere Informationen über Null-Breite Behauptungen in der Python-Dokumentation finden: https://docs.python.org/library/re.html#regular-expression-syntax
In beiden Fällen für mich gearbeitet (auf Linux und Windows):
syntax: regexp
^backup/ #root folder
nbproject/ #any folder
oder
syntax: glob
./backup/* #root folder
nbproject/* #any folder
Es war jedoch nicht, bevor ich einen Link zu .hgignore Datei .hgrc Datei in meinem Repo hinzugefügt:
[ui]
ignore = .hg/.hgignore
Auch erwähnenswert, dass Mercurial erwähnen ignoriert Dateien, dass es nicht zur Zeit-Tracking , die diejenigen hinzugefügt werden, bevor Sie es so konfigurierten, sich zu ignorieren. Also, lassen Sie sich nicht von hg Status sagen einige eingereicht sind M (modifiziert) oder aufschieben! (Fehlt) in den Ordnern, die Sie nur auf die Ignore-Liste hinzugefügt haben!
Erstellen .hgignore Datei unter Stammverzeichnis des Repository
Sie nun die folgenden Inhalte in der Datei hinzufügen.
Syntax: glob
ist / **
*. DS_Store
Dies wird das bin Verzeichnis entfernen und alle * .DS_Store Dateien aus dem Repository