Wie lassen Mercurial alles außer * CS-Datei ignorieren?
-
20-09-2019 - |
Frage
begann ich ein Projekt und fügte hinzu, es zu Mercurial. Aber ich will nur *.cs
Datei unter Versionskontrolle zu übernehmen. Also ich habe bin
, obj
, sln
, suo
hinzuzufügen, _resharper
Ordner etc Muster zu ignorieren.
Wie läßt Hg nur bestimmte Art von Datei wie weiße Liste überwachen? Wie die in Subversion zu tun?
Lösung
Fügen Sie einfach die Erweiterungen auf Ihre .hgignore
Datei, wie Sie über sie kommen:
syntax: glob
*.bin
*.obj
und so weiter. Es ist nicht viel Arbeit, und es Dokumente an den Rest der Welt genau, welche Art von Dateien, die Sie für die Revisionskontrolle unwichtig betrachten.
Sie können sogar Setup eine globale Datei ignorieren, finden Sie in der ignore
Eintrag in der [ui]
Abschnitt .
Der Versuch, die .hgignore
upside-down, indem Sie negative Vorschau reguläre Ausdrücke und andere Voodoo ist (meiner Meinung nach) nicht eine gute Idee zu drehen. Es wird fast sicher nicht funktionieren und wird nur zu Verwirrung führen. Dies liegt daran, hg
passt alle Präfixe eines Gebens Pfadnamen gegen die Regeln in .hgignore
. So eine Datei wie
a/b/c.cs
wird, wenn eine der
ignoriert werdena/b/c.cs
a/b
a
wird durch eine Regel in Ihrer .hgignore
Datei abgeglichen. a/b/c.cs
nicht-ignoriert haben Insbesondere bedeutet dies, dass Sie nicht eine negative Vorschau Ausdruck verwenden -. Die Regel wird a/b
oder a
übereinstimmen
Andere Tipps
In Bezug auf den Link zu einer Mercurial Ausgabe geliefert von Martin Geisler ( https: //www.mercurial -scm.org/bts/issue712 ), bitte beachten Sie, dass das Problem nicht ein technischer Schwierigkeiten, aber Unterstützung:
Dies ist eine alte und wiederkehrende Feature-Anfrage, die ich gut abgewiesen vor Dieser Fehler wurde erstellt. Ich habe geschrieben und ein paar unterstützt / Ausschluss Syntaxen Datei und haben sich entschieden, ich eher „nein sagen würde, Sie nicht, dass“einmal 1% der Nutzer als‚do no, sind Sie die Dokumentation falsch zu lesen‘ wiederholt zu 20% der Nutzer. -Matt Mackall (Entwickler von Mercurial)
Fügen Sie eine Datei mit dem Namen .hgignore
zu Ihrem Repository mit diesen Inhalten.
syntax: regexp
^\.cs
Subversion lässt Sie nicht Regex verwenden, um Dateien zu ignorieren, nur eine Teilmenge von glob Syntax Datei / Verzeichnisnamen übereinstimmen. Ich hatte keine Ahnung, wie man ignorieren Dateien nicht in CS- endet, damit ich das Web durchsucht und dieser Webseite sagt:
svn propset svn:ignore "*[!c][!s]
*.cs?*" .
Verwenden Sie es mit Vorsicht:)
Edit: Martin Geisler richtig ist, und ich habe mich geirrt, die regexp-Syntax ist falsch. Ich entschuldige mich. Das richtige Konzept ist es aber nicht das Meta-Zeichen ...: (