Ich versuche, nur bestimmte Dateien mit Mercurial festzuschreiben. Da hg bei jedem Versuch, eine Änderung festzuschreiben, automatisch hinzugefügt wird, möchte es alle Dateien festschreiben. Aber das will ich nicht, weil bestimmte Dateien noch nicht "fertig" sind.
Es gibt
hg commit -I thefile.foo
Dies ist jedoch nur für eine Datei. Der bessere Weg für mich wäre, wenn ich das automatische Hinzufügen wie in Git deaktivieren könnte. Ist das möglich?
version-control
mercurial
commit
Praveen Kumar Purushothaman
quelle
quelle
hg ci foo bar baz
Antworten:
Sie können die Dateien in der Befehlszeile angeben, wie tonfa schreibt:
Das funktioniert einfach und das mache ich die ganze Zeit. Sie können das gefundene
--include
Flag auch verwenden und es mehrmals wie folgt verwenden:Sie können sogar eine Dateigruppe verwenden , um die Dateien auszuwählen, die Sie festschreiben möchten:
Es gibt keine Einstellung, die das Verhalten beim automatischen Hinzufügen deaktiviert und Mercurial so funktioniert wie Git. Die mq-Erweiterung könnte jedoch von Interesse sein. Das ist eine erweiterte Erweiterung, aber Sie können dies tun
Ich benutze MQ für diesen Zweck jedoch nicht wirklich selbst, da ich denke, dass es ausreicht, nur die Dateinamen in der Befehlszeile anzugeben.
quelle
Wenn Sie einige Dateien festschreiben und viele andere ausschließen möchten, listen Sie die Dateien, die Sie festschreiben möchten, explizit auf.
-I
wird nur benötigt, wenn Sie Muster anstelle von Dateien verwenden möchten.Wenn Sie viele Dateien festschreiben und nur wenige Dateien ausschließen möchten, ist die Verwendung
-X
bequemer.Wenn beispielsweise ein Repository mit "file_1", "file_2" und "file_3" angegeben ist, sind die folgenden äquivalent, letzteres ist jedoch einfacher / schneller einzugeben:
quelle
Ab 3.8 können Sie auch
hg commit --interactive
die Dateien auswählen (vor 3.8 können Sie die crecord-Erweiterung für ähnliche Funktionen verwenden). Das--interactive
(oder nur-i
) Flag veranlasst hg, Sie zur Eingabe der Dateien aufzufordern, die Sie in das Commit aufnehmen möchten. Als zusätzlichen Bonus können Sie sogar Blöcke in die Dateien einschließen / ausschließen.Hier ist ein Beispiel dafür, wie die Benutzeroberfläche aussieht. Beachten Sie, dass dies ein alter Screenshot ist (eigentlich von crecord), sodass sich die Benutzeroberfläche geringfügig geändert hat (die Grundlagen sind jedoch dieselben).
Beachten Sie, dass Sie die Curses-Schnittstelle aktivieren müssen, um diese Schnittstelle zu erhalten. Sie können dies für einen einzelnen Lauf mit
hg commit --config ui.interface=curses --interactive
oder allgemein tun, indem Sie Folgendes zu Ihrem hinzufügen.hgrc
:quelle