Konfiguration
Der Befehl hg help config gibt die Liste der Dateien aus, die Mercurial als Konfigurationsdateien akzeptiert. Darin kann folgende Grundkonfiguration eingetragen werden:
[ui] username = Erik Wegner <user@example.com> #verbose = True #ssh = TortoisePlink.exe [extensions] graphlog= hgext.extdiff = fetch=
Beginn
Das Projektrepository liegt im jeweiligen Pfad im Unterorder .hg. Um die Arbeit zu beginnen, reicht der Befehl hg init im Verzeichnis der Arbeitskopie.
Grundsätzliche Befehle
Folgende Kommandos dienen der grundsätzlichen Arbeit mit Dateien im Repository:
hg add file1 | Fügt file1 zum Repository hinzu |
hg rm file1 | Löscht file1 aus dem Repository und Projektpfad |
hg addremove | Sucht alle neuen oder gelöschten Dateien und speichert die entsprechenden Änderungen |
hg status | Gibt alle geänderten und nicht versionierten Dateien aus |
hg forget file1 | Nimmt das Hinzufügen von file1 zum Repository zurück |
Dateiänderungen betrachten
hg identify -n | Zeigt die lokale Revisionsnummer |
hg up | Aktualisiert das Projektverzeichnis, übernimmt alle Änderungen aus dem Repository |
hg tag -r 2 my-version-tag-name | Erzeugt einen Tag für Revision 2 |
hg grep [-all] [-f] MUSTER DATEI | Sucht das MUSTER in der DATEI, gibt alle passenden Revisionen aus und folgt Dateiumbenennungen |
hg glog file1 | Gibt eine grafische Darstellung der Dateihistorie aus, benötigt die Erweiterung graphlog (siehe oben) |
hg rollback && hg up -C | Nimmt alle lokalen Änderungen zurück. VORSICHT! |
Verzweigen und Zusammenführen
hg heads | Zeigt alle Zweige |
hg merge | Führt die Arbeitskopie mit einem Zweig zusammen |
hg branch BRANCHNAME && hg ci -m"Branch created" | Erzeugt einen Zweig |
hg branches | Zeigt alle (aktiven) Zweige |
hg up default | Wechselt zum Hauptentwicklungszweig |
hg up BRANCHNAME | Wechselt zum Entwicklungszweig BRANCHNAME |
hg branch | Gibt den Namen des Entwicklungszweigs aus |
hg ci --close-branch -m"Branch closed" | Schließt den Entwicklungszweig (Status wird inaktiv) |
Verteilung
hg clone src-repo clone-repo-verzeichnis | Erzeugt im Verzeichnis clone-repo-verzeichnis eine Kopie des Repositories |
hg incoming | Prüft auf Revisionen, die geholt werden können |
hg pull | Lädt die Revisionsänderungen in die lokale Revisionsgeschichte |
hg heads | Gibt aus, ob ein Zusammenführen notwendig ist, wenn es mehrere Entwicklungszweige gibt |
hg merge | Führt zwei Entwicklungszweige zusammen |
hg ci -m"Merged user x changes" | Überträgt die durchgeführte Zusammenführung in das Repository |
hg push | Überträgt das Repository in ein entferntes Repository |
hg outgoing | Gibt die Repository-Änderungen aus, die gesendet werden können |
hg up | Aktualisiert die Arbeitskopie mit den Änderungen aus dem Repository, wenn es nur einen Entwicklungszweig gibt |
Zwei Repositories abgleichen
Wenn zwei Entwickler ihre Änderungen austauschen, bietet Mecurial eine interessante Methode, dies in einem lokalen Netzwerk mit Hilfe des integrierten Webservers zu tun. Die folgenden Schritte beschreiben die zwei Systeme als linke und rechte Seite des Abgleichs.
Methode a: Laden der Änderungen
Die linke Seite startet den integrierten Webserver: hg serve. Dabei wird die IP-Adresse oder der Hostname des Systems ausgegeben, von dem die Änderungen geladen werden können.
Die rechte Seite holt nun die Änderungen vom linken System ab:
hg pull http://linke_seite:8000/ hg up
Methode b: Schreiben der Änderungen
Der integrierten Webserver gestattet in der Grundkonfiguration kein Schreiben von Änderungen, um dies zu erlauben, müssen dei folgenden Zeilen in die hgrc des Repository aufgenommen werden:
[web] push_ssl = false allow_push = *
Anschließend kann der Webserver gestartet werden: hg serve. Dabei wird die IP-Adresse oder der Hostname des Systems ausgegeben, von dem die Änderungen geladen werden können.
Die rechte Seite kann nun die Änderungen in das linken System schreiben:
hg push http://linke_seite:8000/
Erleichterung mit Zeroconf
Wird die Erweiterung zeroconf geladen, wird wie in Methode a beschrieben der Webserver der linken Seite gestartet. Anschließend kann die rechte Seite das Repository mittels hg paths aufspüren.
Erweiterungen
Kurzname | Zweck | Weitere Informatione, Homepage |
FixUTF8 | UTF8-Dateinamen unter Windows | FixUtf8 Extension |