SVN - Lebenszyklus
Der Lebenszyklus eines Versionskontrollsystems wird in diesem Kapitel erläutert. In späteren Kapiteln sehen wir den Befehl Subversion für jede Operation.
Repository erstellen:
Das Repository ist ein zentraler Ort, an dem Entwickler ihre gesamte Arbeit speichern. Das Repository speichert nicht nur Dateien, sondern auch den Verlauf von Änderungen. Dies bedeutet, dass ein Verlauf der in den Dateien vorgenommenen Änderungen beibehalten wird.
Mit der Operation 'create' wird ein neues Repository erstellt. Meistens wird dieser Vorgang nur einmal ausgeführt. Wenn Sie ein neues Repository erstellen, erwartet Ihr VCS, dass Sie etwas sagen, um es zu identifizieren, z. B. wo es erstellt werden soll oder welchen Namen das Repository erhalten soll.
Auschecken
Mit der Operation "Auschecken" wird eine Arbeitskopie aus dem Repository erstellt. Die Arbeitskopie ist ein privater Arbeitsplatz, an dem Entwickler ihre Änderungen vornehmen und diese Änderungen später an das Repository senden.
Aktualisieren
Wie der Name schon sagt, wird der Vorgang "Aktualisieren" zum Aktualisieren der Arbeitskopie verwendet. Dieser Vorgang synchronisiert die Arbeitskopie mit dem Repository. Da das Repository von allen Teams gemeinsam genutzt wird, können andere Entwickler ihre Änderungen übernehmen und Ihre Arbeitskopie wird älter.
Nehmen wir an, Tom und Jerry sind die beiden Entwickler, die an einem Projekt arbeiten. Beide checken die neueste Version aus dem Repository aus und beginnen zu arbeiten. Zu diesem Zeitpunkt sind ihre Arbeitskopien vollständig mit dem Repository synchronisiert. Jerry erledigt seine Arbeit sehr effizient und schreibt seine Änderungen im Repository fest.
Jetzt ist Toms Arbeitskopie veraltet. Durch den Aktualisierungsvorgang werden die neuesten Änderungen von Jerry aus dem Repository abgerufen und Toms Arbeitskopie aktualisiert .
Änderungen vornehmen
Nach dem Auschecken können verschiedene Vorgänge ausgeführt werden, um Änderungen vorzunehmen. Bearbeiten ist die häufigste Operation. Man kann die vorhandene Datei bearbeiten, um Inhalte zur Datei hinzuzufügen / daraus zu entfernen.
Man kann Dateien / Verzeichnisse hinzufügen. Diese Dateien / Verzeichnisse werden jedoch sofort nicht Teil des Repositorys, sondern werden der ausstehenden Änderungsliste hinzugefügt und nach dem Festschreibungsvorgang Teil des Repositorys.
Ebenso kann man Dateien / Verzeichnisse löschen. Durch den Löschvorgang wird die Datei sofort aus der Arbeitskopie gelöscht. Das tatsächliche Löschen der Datei wird jedoch zur ausstehenden Änderungsliste hinzugefügt, und nach dem Festschreibungsvorgang werden Änderungen am Repository vorgenommen.
Der Vorgang 'Umbenennen' ändert den Namen der Datei / des Verzeichnisses. Die Operation 'Verschieben' wird verwendet, um Dateien / Verzeichnisse in einem Repository-Baum von einem Ort an einen anderen zu verschieben.
Änderungen überprüfen
Wenn Sie die Arbeitskopie auschecken oder die Arbeitskopie aktualisieren, wird Ihre Arbeitskopie vollständig mit dem Repository synchronisiert. Wenn Sie jedoch Änderungen an Ihrer Arbeitskopie vornehmen, wird diese neuer als das Repository. Es wird empfohlen, Ihre Änderungen vor dem Festschreiben zu überprüfen.
Die Operation 'Status' listet die Änderungen auf, die an der Arbeitskopie vorgenommen wurden. Wie bereits erwähnt, werden alle diese Änderungen bei jeder Änderung der Arbeitskopie Teil der ausstehenden Änderungsliste. Und die 'Status'-Operation wird verwendet, um die ausstehende Änderungsliste anzuzeigen.
Die Operation 'Status' enthält nur eine Liste der Änderungen, nicht jedoch die Details dazu. Mit der Diff- Operation können Sie die Details der Änderungen anzeigen, die an der Arbeitskopie vorgenommen wurden.
Fehler beheben
Nehmen wir an, man hat Änderungen an seiner Arbeitskopie vorgenommen, aber jetzt möchte er diese Änderungen wegwerfen. In dieser Situation hilft der Vorgang "Zurücksetzen".
Durch das Zurücksetzen werden die Änderungen zurückgesetzt, die an der Arbeitskopie vorgenommen wurden. Es ist möglich, eine oder mehrere Dateien / Verzeichnisse zurückzusetzen. Es ist auch möglich, die gesamte Arbeitskopie zurückzusetzen. In diesem Fall zerstört die Operation "Zurücksetzen" die ausstehende Änderungsliste und bringt die Arbeitskopie wieder in ihren ursprünglichen Zustand.
Konflikte lösen:
Konflikte können zum Zeitpunkt der Zusammenführung auftreten. Der Zusammenführungsvorgang behandelt automatisch alles, was sicher ausgeführt werden kann. Alles andere wird als Konflikt betrachtet. Beispielsweise wurde die Datei "hello.c" im Zweig geändert und in einem anderen Zweig gelöscht. In einer solchen Situation muss eine Person die Entscheidung treffen. Der Vorgang "Auflösen" wird verwendet, um dem Benutzer zu helfen, Dinge herauszufinden und VCS über die Art und Weise der Behandlung der Konflikte zu informieren.
Änderungen festschreiben
Der Vorgang "Festschreiben" wird verwendet, um Änderungen von der Arbeitskopie auf das Repository anzuwenden. Durch diesen Vorgang wird das Repository geändert, und andere Entwickler können diese Änderungen durch Aktualisieren ihrer Arbeitskopie anzeigen.
Vor dem Festschreiben müssen Dateien / Verzeichnisse zur ausstehenden Änderungsliste hinzugefügt werden. Dies ist der Ort, an dem Änderungen darauf warten, festgeschrieben zu werden. Beim Festschreiben stellen wir normalerweise eine Protokollnachricht bereit, um zu erklären, warum jemand Änderungen vorgenommen hat. Diese Protokollnachricht wird Teil des Verlaufs des Repositorys. Commit ist eine atomare Operation, dh entweder das gesamte Commit ist erfolgreich oder es wird zurückgesetzt. Benutzer sehen nie ein halbfertiges Commit.