Differences between revisions 14 and 15
Revision 14 as of 2013-01-30 21:32:38
Size: 6983
Editor: KevinBullock
Comment: update section 2 vocabulary per GermanTranslation
Revision 15 as of 2013-01-30 21:45:19
Size: 7511
Editor: KevinBullock
Comment: update section 3 per GermanTranslation and latest English version
Deletions are marked like this. Additions are marked like this.
Line 79: Line 79:
== Revisionen, Changesets, Heads, und Tip ==

Mercurial fasst zusammengehörige Änderungen an verschiedenen Dateien jeweils zu einem einzigen atomaren '''Changeset''' zusammen. Solche Changesets sind die '''Revisionen''' des gesamten Projekts, die jeweils eine aufeinanderfolgender Nummer erhalten. Da Mercurial gleichzeitiges verteiltes Entwickeln erlaubt, können diese Nummern sich zwischen den einzelnen Benutzern unterscheiden. Darum weist Mercurial außerdem jeder Revision eine globale '''Changeset-ID''' zu. Changeset-IDs sind 40-stellige Hexadezimalzahlen, können jedoch auf die Anfangsstellen (z. B. "e38487") abgekürzt werden, solange dadurch keine Zweideutigkeit entsteht.

{{{#!dot
digraph {
   rankdir = LR
   node [shape=box]
   "rev 0:838e" -> "rev 1:34ef" -> "rev 2:4563"
   "rev 1:34ef" -> "rev 3:fe56"
   "rev 2:4563" -> "rev 4:ac98"
   "rev 3:fe56" -> "rev 4:ac98"
   "rev 4:ac98" -> "rev 5:0345"
   "rev 4:ac98" -> "rev 6:19e3 (tip)"
   label="Beispiel-History"
}
}}}

Zweige (branches) und Merges (Zusammenführungen) in der Revision-History können an jedem Punkt auftreten. Jeder nicht zusammengeführte Zweig erzeugt einen neuen '''Head''' der Revisionshistory.
Hier sind die Revisionen 5 und 6 die Heads. Mercurial behandelt Revision 6 als '''Tip''' des Repositorys, also den Head mit der höchsten Revisionsnummer.
== Revisionen, Änderungssätze, Köpfe, und Spitze ==

Mercurial fasst zusammengehörige Änderungen an verschiedenen Dateien jeweils zu einem einzigen atomaren '''Änderungssatz''' zusammen. Solche Änderungssätze sind die '''Revisionen''' des gesamten Projekts, die jeweils eine aufeinanderfolgender Nummer erhalten. Da Mercurial gleichzeitiges verteiltes Entwickeln erlaubt, können diese Nummern sich zwischen den einzelnen Benutzern unterscheiden. Darum weist Mercurial außerdem jeder Revision eine globale '''Änderungssatz-ID''' zu. Änderungssatz-IDs sind 40-stellige Hexadezimalzahlen, können jedoch auf die Anfangsstellen (z. B. "e38487") abgekürzt werden, solange dadurch keine Zweideutigkeit entsteht.

{{{#!dot
digraph {
   rankdir = LR
   node [shape=record]
   rev0 [label="{{<p1> p1 | <p2> p2} | rev 0:838e}"];
   rev1 [label="{{<p1> p1 | <p2> p2} | rev 1:34ef}"];
   rev2 [label="{{<p1> p1 | <p2> p2} | rev 2:4563}"];
   rev3 [label="{{<p1> p1 | <p2> p2} | rev 3:fe56}"];
   rev4 [label="{{<p1> p1 | <p2> p2} | rev 4:ac98}"];
   rev5 [label="{{<p1> p1 | <p2> p2} | rev 5:0345}"];
   rev6 [label="{{<p1> p1 | <p2> p2} | rev 6:19e3 (tip)}"];
   workingdir [label="{{<p1> p1 | <p2> p2} | Arbeitsverzeichnis}"];
   rev0 -> rev1:p1 [dir=back]
   rev1 -> rev2:p1 [dir=back]
   rev1 -> rev3:p1 [dir=back]
   rev2 -> rev4:p1 [dir=back]
   rev3 -> rev4:p2 [dir=back]
   rev4 -> rev5:p1 [dir=back]
   rev4 -> rev6:p1 [dir=back]
   rev6 -> workingdir:p1 [dir=back]
   label="Beispiel-Archiv"
}
}}}

Zweige (branches) und Zusammenführungen (merges) in der Revision-Historie können an jedem Punkt auftreten. Jeder nicht zusammengeführte Zweig erzeugt einen neuen '''Kopf''' der Revisionshistorie.
Hier sind die Revisionen 5 und 6 die Heads. Mercurial behandelt Revision 6 als '''Spitze''' des Archivs, also den Kopf mit der höchsten Revisionsnummer.

Mercurial verstehen

Mercurials Model dezentraler Entwicklung kann neue Benutzer verwirren. Diese Seite beleuchtet einige grundlegende Konzepte. Im Tutorial finden sie eine Schritt-für-Schritt-Anleitung.

(This page in English: UnderstandingMercurial)

1. Was ist in einem Archiv

Mercurial-Archive enthalten ein Arbeitsverzeichnis gekoppelt mit einem Speicher:

Der Speicher enthält die vollständige Historie (alle jemals übernommenen Änderungen) des Projekts. Anders als traditionelle SCMs, bei denen es nur eine zentrale Kopie dieser Historie gibt, besitzt jedes Arbeitsverzeichnis eine eigene private Kopie der Historie. Dies erlaubt es, gleichzeitig zu entwickeln.

Das Arbeitsverzeichnis enthält eine Kopie der Dateien eines Projekts zu einem gegebenen Zeitpunkt (beispielsweise rev 2), bereit zum Bearbeiten. Auch Tags und ignorierte Dateien werden von der Revisionskontrolle verwaltet, sind also ebenfalls enthalten.

2. Änderungen übernehmen

Wenn sie übernehmen, wird der Zustand des Arbeitsverzeichnisses mit den Änderungen im Vergleich zu seinen Vorgängern als eine neue Revision aufgezeichnet:

Beachten sie, dass Revision 4 ein Zweig (branch) der Revision 2 ist, die zuvor die Revision im Arbeitsverzeichnis war. Jetzt ist Revision 4 der Vorgänger des Arbeitsverzeichnisses.

3. Revisionen, Änderungssätze, Köpfe, und Spitze

Mercurial fasst zusammengehörige Änderungen an verschiedenen Dateien jeweils zu einem einzigen atomaren Änderungssatz zusammen. Solche Änderungssätze sind die Revisionen des gesamten Projekts, die jeweils eine aufeinanderfolgender Nummer erhalten. Da Mercurial gleichzeitiges verteiltes Entwickeln erlaubt, können diese Nummern sich zwischen den einzelnen Benutzern unterscheiden. Darum weist Mercurial außerdem jeder Revision eine globale Änderungssatz-ID zu. Änderungssatz-IDs sind 40-stellige Hexadezimalzahlen, können jedoch auf die Anfangsstellen (z. B. "e38487") abgekürzt werden, solange dadurch keine Zweideutigkeit entsteht.

Zweige (branches) und Zusammenführungen (merges) in der Revision-Historie können an jedem Punkt auftreten. Jeder nicht zusammengeführte Zweig erzeugt einen neuen Kopf der Revisionshistorie. Hier sind die Revisionen 5 und 6 die Heads. Mercurial behandelt Revision 6 als Spitze des Archivs, also den Kopf mit der höchsten Revisionsnummer.

4. Klonen, Änderungen vornehmen, Zusammenführen und Pulling

Beginnen wir mit einem Benutzer Alice, deren Speicher so aussieht:

Bob klont das Repository, und gelangt zu einer vollständigen Kopie des Speichers von Alice (wobei sein Arbeitsverzeichnis unabhängig von ihrem ist!):

Jetzt committet Bob einige Änderungen:

Parellel dazu führt Alice ihre eigenen Änderungen durch:

Nun pullt Bob Alice' Repo für eine Synchronisation. Damit werden alle von Alice durchgeführten Änderungen in Bobs Repo übernommen:

Weil Alice' g der jüngste "head" in Bobs Repository ist, wird er jetzt zum Tip. Bob führt dann einen Merge durch der seine letzte Änderung (f) mit dem Tip verbindet, committet das Ergebnis, und erhält folgendes:

Wenn Alice jetzt von Bob pullt, erhält sie seine Änderungen e, f, und h, und sie sind vollkommen synchron:

5. Ein dezentrales System

Mercurial arbeitet vollkommen dezentral und kommt ohne internes Konzept eines zentralen Repositorys aus. Daher steht es den Benutzern frei, eigene Topologien zu definieren über die sie Änderungen teilen wollen:

Für eine praktische Einführung in die Benutzung von Mercurial, siehe GermanTutorial.


CategoryGerman

GermanUnderstandingMercurial (last edited 2016-03-22 06:29:32 by Pierre-YvesDavid)