2010-05-25 8 views
27

Nehmen wir an, Sie tun hg status und Sie haben drei Dateien geändert. Ich kann alle drei Dateien einchecken (hg commit). Aber wie kann man einchecken (und dann hg push) nur eine der geänderten Dateien?Einchecken mit Mercurial?

+2

mögliches Duplikat von [Mit mercurial, was ist der einfachste Weg, eine einzelne Datei zu committen und zu pushen, während andere Änderungen in Ruhe gelassen werden?] (Http://stackoverflow.com/questions/125272/using-mercurial-whats-the-easiest -way-to-commit-and-push-a-single-Datei-while-le) –

Antwort

43

Bitte überprüfen the output of hg help commit die zeigt, dass Sie

hg commit foo.c 

tun können, wenn Sie nur eine einzelne Datei begehen wollen. Das ist genau wie Subversion und viele andere Systeme - kein Hokuspokus :-)

+0

Ich erhalte eine Nachricht "abort ... Datei nicht verfolgt!". Mein lokales Repository wird bereits von Mercurial verfolgt. Was könnte falsch sein? – WindRider

+1

@WindRider: Es bedeutet, dass Sie Mercurial mitteilen müssen, dass Sie die Datei zuerst verfolgen möchten. Benutze ['hg add' dafür] (http://www.selenic.com/mercurial/hg.1.html#add). Siehe auch [eine Mercurial-Anleitung] (http://mercurial.aragost.com/kick-start/en/basic/#creating-a-changeset) –

7

Just do:

hg ci -I path/to/file -m "commited only one file" 

, dass nur eine Datei verpflichtet, und Sie können es schieben, und keiner der unbestätigten Änderungen betroffen sein werden.

+2

Sie sollten auch in der Lage sein, es genau wie Sie in svn tun: hg commit -m "hier ist meine Nachricht" Pfad/zu/file – RyanWilcox

2

Wenn Sie nicht auf Windows laufen, können Sie mit TortoiseHG (eine grafische Mercurial-Schnittstelle) auswählen, welche Dateien jedes Mal übertragen werden sollen.