2008-10-31 10 views

Antwort

159

Alternativ:

syntax: glob 
bin/** 
+0

das ist viel einfacher, denke ich :) – Xian

+2

Sieht aus wie nur "bin" (keine Anführungszeichen) funktioniert ... – PhiLho

+0

PhiLho, ich denke, das würde auch files filtert mit dem Namen bin –

2

Nevermind groß sein, ich habe es

syntax: regexp 
bin\\* 

Ausdrücke Folgen Sie der Standard-Perl-Syntax für reguläre Ausdrücke.

+2

Tat und Ihr Ausdruck bedeutet „Datei oder einen Ordner mit ist endet und von 0 oder mehr Schrägstrichen gefolgt“ ... Also es funktioniert, weil der umgekehrten Schrägstrich durch die * zunichte gemacht wird, aber es gilt alles mit "bin" drin. Unter Windows ersetzt hg \ durch/vor dem Abgleich. – PhiLho

8

diese beiden wird auch ein Verzeichnis auszufiltern genannt cabin, die vielleicht nicht, was Sie wollen. Wenn Sie Top-Level sind Filterung können Sie verwenden:

^/bin/ 

Für bin Verzeichnisse unterhalb Ihrer Wurzel, können Sie die^weglassen. Es ist nicht erforderlich, die Syntax anzugeben, regexp ist der Standardwert.

+3

Dies wird nichts ignorieren. Der Caret sagt nur Dinge in der Repo-Wurzel, aber der führende Schrägstrich fängt nur Verzeichnisse ab, die nicht im Repo-Stamm enthalten sind. –

0

zu ignorieren .class-Dateien

syntax: regexp 
?\.class 
+1

Falsche Regex-Syntax ... – PhiLho

48

habe ich einige Experimente und ich fand, dass die Regex-Syntax unter Windows auf den Pfad mit dem aktuellen Repository beginnend gilt, mit umgekehrten Schrägstrichen zu Schrägstrichen umgewandelt.

Also, wenn Ihr Repository in E: \ Dev zum Beispiel ist, wird hg status die Muster gegen foo/bar/file1.c und so anwenden. Anker gelten für diesen Pfad.

So:

  • Glob gilt für Pfadelemente und wurzelt auf Elementteile
  • foo beliebigen Ordner entspricht (oder Datei) mit dem Namen foo (nicht auf "foobar" noch "barfoo")
  • * foo * einen beliebigen Ordner übereinstimmt oder mit "foo" im Namen *
  • foo/bar-Datei passt alle Dateien in "foo" Ordner mit "bar" Start


  • Regex Groß- und Kleinschreibung ist nicht
  • Natürlich verankert, regex Backslash Sonderzeichen wie. (Punkt)
  • /Übereinstimmungen \ Pfadtrennzeichen unter Windows. \ stimmt nicht mit diesem Trennzeichen überein ...
  • foo passt auf alle Dateien und Ordner mit "foo" innerhalb
  • foo/Spiele nur Ordner mit "foo"
  • /foo/Spiele den Ordner "foo" irgendwo auf dem Weg endet
  • /foo/bar/entspricht den Ordner „bar“ in dem Ordner „foo“ irgendwo im Pfad
  • ^foo passen Datei oder einen Ordner an der Wurzel des Repositorys mit foo
  • foo $ treffer Datei mit der Endung von foo beginnen

Ich hoffe, das wird helfen, ich fand die HGIGNORE(5) Seite ein wenig prägnant.

+0

+1 das ist, was ich eine gute Antwort nenne, Prost – NSGaga

+0

Ich habe das Muster '' [Dd] ebug */'' im Einsatz und die seltsame Sache ist, dass es auch filtert * files * * wie '' debug.txt '' –

0

Syntax: glob ist/**

Diese Antwort ist oben gezeigt, jedoch würde ich auch, dass hinzufügen, * und ** werden unterschiedlich behandelt. ** ist rekursiv, * nicht.

Siehe Hg Patterns

Verwandte Themen