Frage

Gibt es eine Möglichkeit Änderungen zu ignorieren, mit Mercurial auf einige Dateien auf einen begehen?

Ich habe eine bestimmte Situation geraten, wo wir eine Standard-Oracle tnsnames.ora-Datei, die auf 127.0.0.1 Punkte, aber einige Entwickler ändern sie auf andere Systeme zeigen, aber wir wollen nicht die Standard-Datei ändern .

In Subversion, habe ich einfach hinzugefügt dies die ignore-on-commit Änderungsliste. Gibt es eine Möglichkeit, dies zu tun in Mercurial?

War es hilfreich?

Lösung

Wenn die Dateien, die Sie von der auslassen möchten Befehl „hg commit“ bereits „verfolgt“, sollten Sie die Option -X verwenden. Das Muster auf -X geben wird, ist sehr flexibel, so dass es beispielsweise möglich, auszuführen:

% hg stat
A etc/foo.conf
M src/bar.c
M lib/libbar/loader.c
% hg commit -X '**.conf'

zu vermeiden jede Datei mit einer „Conf“ -Erweiterung zu begehen, und zwar unabhängig davon, wie tief im Quellbaum lebt. Im Arbeitsbereich darüber gezeigt würde "src / bar.c" und "lib / libbar / loader.c", aber nicht "etc / foo.conf" begehen.

Um mehrere Muster von Dateinamen, verwenden Sie mehrere Optionen -X ausschließen, das heißt:.

% hg commit -X '**.conf' -X '**.sh'

Andere Tipps

Traditionell wird dies gelöst, indem die Datei nicht Versionierung selbst, sondern durch eine Kopie davon Versionierung als Vorlage für andere zu verwenden.

Sie würden also hg mv tnsnames.ora tnsnames.ora-template, dann begehen, dann eine gerade Dateisystem Kopie tnsnames.ora-Vorlage tnsnames.ora, und fügen Sie tnsnames.ora auf die .hgignore Datei.

Nachträgliche Änderungen an der Vorlage noch herausgeschoben werden, aber sie werden die Arbeitsumgebung, es sei denn jemand kopiert die Vorlage auf die eigentliche Datei nicht wirklich ändern.

Sie könnten alias verpflichten, so etwas wie ‚hg -X excluded_file.ext begehen‘ habe ich noch nie Mercurial verwendet, so dass ich nur von der man-Seite geht hier vor.

Geben Sie für .hgignore Datei in Mercurial-Dokumentation.

Hier ist eine Beispieldatei ignorieren.

       # use glob syntax.
       syntax: glob

       *.elc
       *.pyc
       *~

       # switch to regexp syntax.
       syntax: regexp
       ^\.pc/
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top