xwolf.de|com

Menü

Inhalt dieser Site

Ansicht

Individuelle Benutzerkonfiguration für die Site.

Druckansicht Startseite Suchen

A A A A

Webseiten und Dokumente verwalten mit CVS und TortoiseCVS

Wolfgang Wiese (www.xwolf.de, xwolf@xwolf.de), August 2003

[Einleitung] [Installation und Einrichtung] [Ein Projekt einchecken] [Ein Projekt auschecken, Änderungen einchecken & Lokale Version aktualisieren] [Mehrere Projekt als Module verwalten] [Marken (Tags) definieren] [Branches und Subbranches] [Sonstige Funktionen von TortoiseCVS] [Ausblick & Referenzen]

  1. Ein Projekt auschecken

    Das Auschecken eines im CVS-Repository vorhandenen Moduls funktioniert ähnlich wie das Einchecken eines neuen Moduls.
    Zunächst wechselt man mit dem Explorer in das Verzeichnis, in welchem das Modul auscheckt werden soll. Danach rufen wir über die rechte Maustaste wieder das Kontextmenü auf:

    Projekt auschecken Bild 13. Projekt auschecken

    Aus dem Kontextmenü wählen wir die Funktion CVS Auschecken. Danach werden wir wieder aufgefordert einige Zugangsdaten anzugeben:

    Projekt auschecken: Zugangsdaten Bild 14. Projekt auschecken: Zugangsdaten

    Außerdem sehen wir im oberen Feld die Zugangsdaten mit denen wir zuvor das Modul www.example.org eingecheckt haben. Die Zugangsdaten sind mit den dort benutzen Daten vorbelegt. Wir können aber auch ohne Probleme andere Server eingeben. Im Feld Modul wird für das Auschecken eines anderen vorhandenen Moduls, der Namen eingegeben. Ich hab hierzu auf meinem Server ein Projekt Namens Test vorbereitet, welches ich im Auswahlfeld angebe.

    Nach der Auswahl aller Daten und klicken auf OK wird das entsprechende Projekt ausgecheckt. Im vorher ausgewählten Verzeichnis wird dazu ein neues Verzeichnis mit den Inhalten des Projektes erstellt.

    Auf der Unix-Shell würde dies so aussehen: cvs checkout -P www.example.org

  2. Änderungen einchecken

    Nachdem man Dateien in der lokalen Version geändert hat, müssen diese Änderungen der zentralen Repository mitgeteilt werden. Das dies notwendig ist, erkennt man bei TortoiseCVS an der Farbe der Folder- und Dateiicons. Ein rot unterlegtes Icon bedeutet, daß eine Änderung statt fand, die noch nicht eingecheckt wurde:

    Geänderte Datei Bild 15. Geänderte Datei

    Um eine Datei oder allgemein Änderungen im Projekt einzuchecken, wird im Projektverzeichnis das Kontextmenü aufgerufen und die Option CVS Einchecken gewählt. Im darauf erscheinenden Fenster kann man ein Kommentar hinterlassen, darüber was man getan hat. (Bei größeren Projekten mit mehreren Autoren sollte man dies unbedingt tun!). Ausserdem sieht man über eine Auswahlliste, welche Dateien eingecheckt werden. Hat man das Kontextmenü vorher nicht auf eine einzige Datei angewendet, sondern auf das Verzeichnis, finden sich hier unter Umständen alle Dateien, die man bisher geändert hat, vorausgewählt:

    Kommentar zum Einchecken Bild 16. Kommentar zum Einchecken

    Nach dem Klicken auf OK blendet ein Statusfenster auf, wo man sieht, wie die ausgewählten Dateien in die CVS-Repository übernommen werden. Dabei erhalten sie auch eine neue Versionsnummer.

    Statusfenster Einchecken Bild 17. Statusfenster beim Einchecken

    Auf der Unix-Shell würde dies so aussehen: cvs commit -m "test" index.html Wobei danach der Standard-Editor (vi) startet um die Eingabe der Commitinfo zu erlauben, wenn die Option -m "test" weggelassen wird.

  3. Lokale Version aktualisieren

    Wenn mehrere Leute an demselben Projekt arbeiten, kann es sehr schnell vorkommen, daß die lokale Kopie nicht mehr aktuell ist, weil zwischenzeitlich andere Autoren Änderungen in die CVS-Repository eingespielt haben. Beispielsweise haben wir die obige Datei index.html in der Version 1.2 auf dem eigenen Rechner liegen.
    In der Zwischenzeit wurde die Datei jedoch von einem anderen Benutzer geändert und somit auf die Version 1.3 gebracht. Wir erhalten daher beim Versuch unsere Änderungen einzuchecken, folgende Fehlermeldung:

    Fehler beim Einchecken Bild 18. Fehler beim Einchecken

    Die Fehlermeldung von TortoiseCVS ist bereits sehr ausführlich und sagt alles was wir normalerweise tun müssen: Erst die aktuelle Version aktualisieren, dann bearbeiten und erst danach einchecken!

    Da wir dies jedoch nicht getan haben, ist das Kind schon in den Brunnen gefallen: Wir haben Änderungen gemacht, die derzeit noch nicht akzeptiert werden können. Diese müssen dennoch eingespielt werden können. Die CVS Update-Funktion hilft zum Glück dabei Konflikte aufzulösen. Wenn wir ein Update ausführen, erhalten wir folgende Fenster:

    Konfliktbereinigung mit CVS Update Bild 19. Konfliktbereinigung mit CVS Update

    Im Statusfenster wird darauf hingewiesen, daß ein Konflikt aufgetreten ist. CVS Update versucht daraufhin, beide Änderungen zu berücksichtigen und in einer neuen Datei zu verschmelzen. (Aus Sicherheitsgründen wird eine Kopie der altne lokalen Datei unter den Namen .#index.html.1.2 im selben Verzeichnis abgelegt.)
    Hierzu wird eine eigene Diff-Applikation benötigt, die dies machen kann. Diese Applikation ist bei TortoiseCVS in der aktuellen Version jedoch noch nicht enthalten, so daß wir zusätzlich nach dem Pfad zu einer solchen Applikation gefragt werden.
    Da ich jedoch keine solche Applikation installiert habe, breche ich die Suche ab, mit der Folge, daß ich selbst Hand anlegen muß.

    Wenn wir die Datei index.html in einem Editor laden, sehen wir darin folgende Zeilen:

    <<<<<<< index.html
    Noch eine Variable: $Id: index.html,v 1.2 2003/08/13 06:29:28 xwolf Exp $
    
    Hier aendere ich was...
    
    =======
    Noch eine Variable: $Id: index.html,v 1.3 2003/08/13 08:28:08 wgwiese Exp $
    
    Edit von einen anderen User...
    >>>>>>> 1.3
    	

    Zwischen den Zeilen <<<<<<< index.html und >>>>>>> 1.3 kam es zu Änderungen: der Benutzer xwolf versuchte in der Version 1.2 die Zeile Hier aendere ich was... einzuspielen, während der Benutzer wgwiese in der selben Zeile bereits einen anderen Satz geschrieben hatte und damit die Version 1.3 definierte. Die Gleichheitszeichen trennen beide Versionen voneinander.
    Eine Diff-Applikation würde an dieser Stelle fragen, welcher Text entgültig genutzt werden soll. Da wir diese nicht haben, muss ich die Stelle von Hand korrigieren, indem ich mir die Texte aus beiden Versionen nehme und daraus dann eine neue Version mache.
    Die neue Version speichere ich ab und checke dann die Änderungen ein. Wir erhalten damit die Version 1.4 .

    Auf der Unix-Shell würde dies so aussehen: cvs update -dP index.html

[Zurück...] [Weiterlesen...]

Punkte: 1.9 (gut), Stimmen: 19 Abstimmen:

Info

$Id: cvstutor3.shtml,v 1.10 2004/03/08 22:09:09 xwolf Exp $
© 1996 - 2004 by xwolf - xwolf ist eingetragene Marke beim Deutschen Patent- und Markenamt (Nr. 301 04 380)