Tutorial - Änderungen in einem anderen Repository zur Verfügung stellen

GermanTutorialFirstChange hat beschrieben, wie wir ein [:ChangeSet:Changeset] im my-hello-new-output [:Repository:Repository] erzeugt haben. Jetzt wollen wir die Änderung weiterverbreiten.

Getreu einem guten Mercurial-Stil [:Clone:klonen] wir zuerst unser ursprüngliches Repository.

$ cd ..
$ hg clone my-hello my-hello-share

Das tip Kommando hilft uns herauszufinden, den [:Tip:tip] in jedem einzelnen Repository anzuzeigen (der Tip ist das zuletzt erzeugte Changeset). Mit der Option -q ("quiet") gibt Mercurial keine vollständige Beschreibung des Tip aus, sondern nur die Changeset-ID.

$ cd my-hello-share
$ hg -q tip
1:82e55d328c8c
$ cd ../my-hello-new-output
$ hg -q tip
2:a58809af174d

Hier sehen wir, daß sich die Tips der beiden Repositories unterscheiden. Nun gehen wir zurück nach my-hello-share und pflegen unser neues Changeset dort ein. Dazu benutzen wir das pull Kommando, das alle Changesets aus dem anderen Quellrepository [:Pull:herauszieht], die es diesem Repository noch nicht gibt.

$ cd ../my-hello-share
$ hg pull ../my-hello-new-output
pulling from ../my-hello-new-output
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
(run 'hg update' to get a working copy)

Anders als die anderen häufig benutzten Mercurial-Kommandos ist pull sehr mitteilsam. In unserem Fall war der pull erfolgreich!

Die letzte Ausgabezeile ist dabei interessant: Ohne weitere Option beim pull bringt Mercurial das [:WorkingDirectory:Arbeitsverzeichnis] nicht auf den aktuellen Stand. Das heißt, im Repository ist das Changeset jetzt vorhanden, aber in der Datei hello.c im Arbeitsverzeichnis ist noch der alte Inhalt vor dem pull-Kommando.

Wenn wir die Datei (und alle anderen, die sich im Repository durch den pull geändert haben) auf den [:Update:aktuellen Stand] bringen wollen, folgen wir Mercurials Hinweis:

$ hg update
1 files updated, 0 files merged, 0 files removed, 0 files unresolved

Jetzt können wir überprüfen, daß my-hello-share and my-hello-new-output identische Inhalte und die gleiche Revisionsvorgeschichte haben.

In GermanTutorialExport sehen wir, wie wir eine Änderung jemand anderem zukommen lassen können.


CategoryTutorial