Mittwoch, 8. Januar 2014

 

CVS-Einführung (POS1: 2BHIF)


Repository
Zentrale Instanz, welche alle Versionen der Projektdateien enthält. Im Repository werden alle Dokumente (Dateien) gespeichert, welche nicht (automatisch) erzeugt werden können. Das sind z.B.:
  • Source Code
  • Makefiles
  • Scripts
  • Dokumentation
  • Schriftverkehr
  • u.U. Libraries von Fremdherstellern
  • ...
Nicht ins Repository gehören Dateien, die aus anderen Dateien aus dem Repository erzeugt werden können.
Workspace
Der Arbeitsbereich (Workspace) ist eine lokale Kopie der Dinge, die zum Bearbeiten nötig sind. Bei kleineren bis mittleren Projekten ist dies wahrscheinlich eine vollständige Kopie aller Dateien aus dem Repository.
importieren
Ein Projekt in das Versionsverwaltungssystem aufnehmen. Das ist nur ein einziges Mal zu machen, wenn das Projekt angelegt wird oder das erste Mal ins CVS aufgenommen wird.
auschecken (check out)
Erzeugen einer lokalen Kopie aus dem Repository (Achtung: alle lokalen Dateien werden überschrieben, wenn sie existieren, für einen Abgleich muss man aktualisieren).
einchecken (check in - commit)
Lokale Änderungen ins Repository übernehmen.
aktualisieren (update)
Die neuesten Dateien (Änderungen) aus dem Repository in den Workspace übernehmen. Wird benötigt, wenn mehrere Entwickler am selben Projekt arbeiten oder wenn man an mehreren Lokationen programmiert (Schule, Notebook, Heim-PC).
Module
Ein Modul ist eine Gruppe von Dateien, die unter einem Namen ausgecheckt werden können. Module können hierarchisch aufgebaut werden (meist sind Module einfach Verzeichnisse).
Versionen
CVS speichert nicht nur die aktuelle Kopie einer Datei sondern auch jede Version, die jemals eingecheckt wurde. CVS weist der ersten Version einer Datei die Version 1.1 zu, der zweiten 1.2 usw. Zu jeder Version werden Datum, Zeit und ein Kommentar gespeichert.
Mit Hilfe von CVS kann man u.a. folgende Dinge tun:
  • eine bestimmte Version einer datei auschecken
  • den Stand des gesamten Projekts (Moduls) von vor 5 Wochen bestimmen
  • die Unterschiede einer bestimmten Datei zwischen Version 1.3 und 1.5 anzeigen
Wird ein Modul mit den Dateien
     Main.java      1.4
Gui.java 1.9
Net.java 1.6
ausgecheckt, dann in Gui.java und Net.java etwas geändert und danach das Modul wieder eingecheckt, so werden nur die Versionen der geänderten Dateien erhöht:
     Main.java      1.4
Gui.java 1.10
Net.java 1.7
Das bedeutet, dass die individuellen Versionsnummern nicht für Releases verwendet werden können. Dazu sind Tags (Marken) zu verwenden.
Tags
Tags (Marken) sind (fast) frei wählbare Bezeichner für eine Gruppe von Dateien (oder Modulen), die den Zustand zu einem bestimmten Zeitpunkt markieren. So könnte für obiges Modul vor dem Auschecken das Tag PreRel_1_0 gewählt werden. Mit PreRel_1_0 kann man dann ganau auf die oben gezeigten Versionen von Main.java, Gui.java und Net.java zugreifen.
Mit Tags werden üblicherweise bestimmte signifikante Ereignisse im Projekt markiert.
Zweige
Im Verlauf der Entwicklung arbeiten die Entwickler an einer gemeinsamen Quellcodebasis. Sie checken aus und ein, Versionen werden erzeugt usw. Jeder wird die Ergebnisse des anderen weiterverwenden. Dieser Fluss des Sourcecodes wird Hauptstrang bezeichnet:


Zweige in der Versionsverwaltung sind parallele Zeitlinien. Zu einem Zeitpunkt verzweigt sich der Hauptstrang. Ab diesem Zeitpunkt existieren zwei parallele Zeitlinien und damit Kopien des Sourcecodes. Jeder Zweig verhält sich wie ein eigenes Repository. Zweige werden durch Tags gekennzeichnet. Sie werden oft für Releases verwendet (ab einem bestimten Zeitpunkt wird ein Releasezweig erzeugt, in dem nur mehr Fehler behoben werden und keine neue Funktionalität eingebaut wird, im Hauptstrang kann aber gleichzeitig an neuen Features weitergearbeitet werden, Fehlerkorrekturen werden natürlich im Hauptzweig "nachgezogen").
Zweige können natürlich wieder zusammengeführt werden. Die Änderungen für die Korrekturen im Releasezweig können automatisch ermittelt werden und in den Hauptstrang übernommen werden.

Links
Ximbiot
Einführung in das Concurrent Versions System (CVS)
Wikipedia:CVS
ganz kurze Einführung in CVS (pdf)

Bücher
Versionsverwaltung mit CVS

Kurzreferenz
2-seitige Kurzreferenz

Labels: ,


Kommentare:

Kommentar veröffentlichen

Abonnieren Kommentare zum Post [Atom]





<< Startseite

This page is powered by Blogger. Isn't yours?

Abonnieren Posts [Atom]