wake-up-neo.com

Wie kann ich alles unter einem Ordner in Mercurial ignorieren?

Ich suche nach einem Ausdruck für die .hgignore-Datei, um alle Dateien unter einem angegebenen Ordner zu ignorieren.

beispiel: Ich möchte alle Dateien und Ordner unter bin ignorieren

Tatsächlich wäre jeder Ratschlag, wie die Ausdrücke gebildet werden, großartig

147
Xian

Abwechselnd:

syntax: glob
bin/**
165
Ry4an Brase

Ich habe einige Experimente durchgeführt und festgestellt, dass die Regex-Syntax unter Windows für den Pfad gilt, der mit dem aktuellen Repository beginnt, wobei Backslashes in Schrägstriche umgewandelt werden.

Wenn sich Ihr Repository beispielsweise in E:\Dev befindet, wendet hg status die Muster gegen foo/bar/file1.c und dergleichen an. Anker gelten für diesen Pfad.

So:

  • Glob gilt für Pfadelemente und wurzelt in Elementteilen
  • foo entspricht allen Ordnern (oder Dateien) mit dem Namen foo (nicht "foobar" oder "barfoo")
  • * foo * stimmt mit jedem Ordner oder jeder Datei überein, deren Name "foo" enthält
  • foo/bar * stimmt mit allen Dateien im Ordner "foo" überein, die mit "bar" beginnen


  • Regex unterscheidet zwischen Groß- und Kleinschreibung, nicht verankert
  • Backslash regex Sonderzeichen wie. (Punkt)
  • / passt\Pfadtrennzeichen unter Windows.\stimmt nicht mit diesem Trennzeichen überein ...
  • foo vergleicht alle Dateien und Ordner mit "foo"
  • foo/passt nur Ordner an, die mit "foo" enden
  • / foo/stimmt mit dem Ordner "foo" irgendwo im Pfad überein
  • / foo/bar/stimmt mit dem Ordner "bar" im Ordner "foo" irgendwo im Pfad überein
  • ^ foo stimmt mit der Datei oder dem Ordner überein, die mit foo im Stammverzeichnis des Repository beginnen
  • foo $ entspricht der Datei, die mit foo endet

Ich hoffe das hilft, ich fand die HGIGNORE (5) -Seite etwas prägnant.

50
PhiLho

Beide werden auch ein Verzeichnis mit dem Namen cabin herausfiltern, das möglicherweise nicht Ihren Vorstellungen entspricht. Wenn Sie die oberste Ebene filtern, können Sie Folgendes verwenden:

^/bin/

Bei bin-Verzeichnissen unterhalb Ihres Stammverzeichnisses können Sie das ^ weglassen. Es ist nicht erforderlich, die Syntax anzugeben. Regex ist die Standardeinstellung.

8
Derek Slager

Egal, ich habe es verstanden

syntax: regexp
bin\\*

ausdrücke folgen der Standardsyntax für reguläre Perl-Ausdrücke.

2
Xian

syntax: glob bin/**

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

Siehe Hg Patterns

0
balrob

ignorieren .class-Dateien 

syntax: regexp
?\.class
0
user2427