Konfliktlösung

Entdecken Sie im Skript einen Fehler, der schon in vorherigen Revisionen enthalten war, springen Sie erst per hg update zurück, korrigieren den Fehler, und führen dann ein hg commit durch. Die so in der älteren Version vorgenommenen Änderungen übernehmen Sie anschließend mit dem Kommando hg merge in die aktuelle Version.

Falls das aufgrund eines Konflikts fehlschlägt, lassen Sie sich zunächst mit hg resolve --list die betroffenen Dateien anzeigen. Anschließend führen Sie diese mit folgendem Kommando zusammen:

$ hg resolve Datei

Hilft das nicht, bleibt nur der Ausweg, den Konflikt manuell zu beheben. Die problematischen Stellen hat Mercurial dabei schon im Skript markiert (Abbildung 7). Danach markieren Sie mittels des Kommandos

$ hg resolve --mark Datei

die betroffene Datei als korrigiert und führen einen Commit aus (Abbildung 8). Der Befehl hg log zeigt anschließend jeweils neben dem Punkt Vorgänger an, in welcher Version Sie den Fehler behoben haben (Abbildung 9).

Abbildung 7: Hier wusste Mercurial nicht, welche Zeile es verwenden sollte.
Abbildung 8: Hier hat der Autor einen Fehler in einer früheren Revision korrigiert (hg update 0, hg commit) und dann diese Korrekturen mit der aktuellen Version zusammengeführt (hg merge). Den dabei entstandenen Konflikt musste er manuell lösen.
Abbildung 9: Mercurial merkt sich im Log selbst komplexe Operationen in verschiedenen Revisionen.

Wenn Sie eine Datei umbenennen, verschieben oder löschen möchten, gilt es, den jeweils passenden Mercurial-Befehl dafür zu nutzen (Listing 2). Würden Sie die herkömmlichen Befehle cp, mv oder rm verwenden, bekäme das Versionskontrollsystem von den Aktionen nichts mit. Durch die eigenen Kommandos protokolliert Mercurial aber, was wann mit welcher Datei passiert, und kann diesen Vorgang später wieder rückgängig machen.

Listing 2

$ hg cp original.txt kopie.txt
$ hg mv original.txt umbenannt.txt
$ hg rm original.txt

Grüner Zweig

Angenommen, das Bash-Skript screenshot.sh aus unserem Beispiel schießt mittlerweile brav seine Screenshots. Bei der Suche im Netz stolpern Sie jedoch über das neue Programm supershot.sh, das Sie unbedingt in Ihr Skript einbauen möchten.

Um jetzt den bestehenden funktionierenden Code nicht zu zerstören, haben Sie die Möglichkeit, einen neuen Zweig in der Entwicklung (englisch: "branch") zu erstellen:

$ hg branch supershot

Der Befehl erstellt einen neuen Zweig mit dem frei gewählten Namen supershot und wechselt in ihn hinein (Abbildung 10). Dort nehmen Sie nun die gewünschten Änderungen auf und führen einen Commit aus. Zum alten Zweig zurück gelangen Sie jederzeit via hg update default, in den Branch supershot springt analog hg update supershot.

Abbildung 10: Wenn Sie einen Branch erstellen, haben Sie zwei verschiedene Entwicklungslinien oder Zweige, zwischen denen Sie hin- und herspringen können.

Sie dürfen beliebig viele Branches anlegen und so verschiedene Versionen der Skripte weiterentwickeln. Alle derzeit vorhandenen Entwicklungszweige listet hg branches auf. Befinden Sie sich im Branch default und möchten die Änderungen aus dem Branch supershot herüberholen, rufen Sie einfach den Befehl hg merge supershot auf.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Vorher und nachher
    Wer Textdateien, wie etwa Konfigurations-, Programmquellcode- oder Skriptdateien, regelmäßig überarbeitet, sollte eine Versionsverwaltung nutzen, um auch auf alte Versionen zurückgreifen zu können: Dann bleiben Fehler beim Überarbeiten folgenlos.
  • Neue Version 1.3 von Mercurial unterstützt Sub-Repositories
    Das Mercurial-Projekt hat Version 1.3 seiner freien Software zur Versionskontrolle veröffentlicht. Als experimentelles Feature führt die Release Sub-Repositories ein.
  • Managelogs 2.0.0 mit neuem Build-Prozess und Mercurial-Repo
    Das Programm Managelogs verwaltet die beim Apache-Webserver anfallenden Protokolldateien. In der jetzt verfügbaren Version 2.0.0 haben die Entwickler den Build-Prozess umgestellt.
  • Richtig gerüstet
    Wer sich mit dem Programmieren beschäftigt, sieht sich rasch mit einer Vielzahl von Tools konfrontiert. Wir helfen bei der Auswahl der richtigen Werkzeuge.
  • Im Gleichklang
    Fossil vereint Versionskontrolle, Wiki und Bugtracker zum Rundum-Wohlfühl-Paket für Software-Entwickler.
Kommentare

Infos zur Publikation

LU 11/2017: Server für Daheim

Digitale Ausgabe: Preis € 8,50
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 3 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...
Backup mit KUP unter Suse 42.3
Horst Schwarz, 24.09.2017 13:16, 3 Antworten
Ich möchte auch wieder unter Suse 42.3 mit Kup meine Backup durchführen. Eine Installationsmöglic...
kein foto, etc. upload möglich, wo liegt mein fehler?
kerstin brums, 17.09.2017 22:08, 5 Antworten
moin, zum erstellen einer einfachen wordpress website kann ich keine fotos uploaden. vom rechne...
Arch Linux Netzwerkkonfigurationen
Franziska Schley, 15.09.2017 18:04, 0 Antworten
Moin liebe Linux community, ich habe momentan Probleme mit der Einstellung des Lan/Wlan in Arc...