How To: CVS unter Windows

Letztes Update: 29. Juli 2005

In diesem Dokument möchte ich den CVS-Zugriff unter Windows beschreiben. Falls Sie Schreibzugriff auf den Server haben möchten, müssen Sie erst einen SSH2-Tunnel aufbauen. Das wird in der SSH2-Anleitung ausführlich beschrieben.

Inhalt

Verwendete Software
Lese- oder Schreibzugriff?
Anmeldung am CVS-Server
Bei anonymem Lesezugriff
Bei Schreibzugriff
Aktualisieren des CVS-Verzeichnisbaums auf der Festplatte
Durchführen eines Checkouts
Was ist ein Checkout?
Vorbereitung
Bei anonymem Zuriff
Bei Schreibzugriff
Der Statusbericht des Checkouts
Änderungen zwischen zwei Versionen einer Datei feststellen
Vergleich einer älteren mit der aktuellen Version auf dem Server
Vergleichen von zwei beliebigen Versionen
Vergleichen von der Version auf der Festplatte mit einer Version auf dem Server
Ausgabe, die bei einem Diff erzeugt wird
Verwendung eines externen Diff-Programms
Neue Dateien auf den Server stellen
Änderungen an einer Datei an den Server übertragen

Verwendete Software

Ich beschreibe die Schritte anhand der kostenlosen Software WinCVS, da es eine grafische Oberfläche besitzt, einfach zu bedienen ist und einen großen Funktionsumfang hat. Ich verwende die Version 1.02 bzw. 2.0. Falls es eine neuere Version gibt und die Anleitung nicht mehr stimmt, teilen Sie mir das bitte per E-Mail mit. WinCVS können Sie hier herunterladen.

Lese- oder Schreibzugriff?

Jeder kann anonym auf den CVS-Server zugreifen. Damit können allerdings keine Dateien geändert werden. Falls Sie aktiv am Lang/De-Projekt mitarbeiten, sollten Sie in Betracht ziehen, den Schreibzugriff zu beantragen. Allerdings ist es auch nicht sinnvoll, wenn Sie nur sehr wenige Dokumente erstellen bzw. ändern möchten, da sowohl auf Ihrer Seite als auch auf dem Server einige Arbeit erforderlich ist.

Die notwendigen Vorbereitungen sind auf der Seite SSH2-Einführung beschrieben.

Anmeldung am CVS-Server

Bei anonymem Lesezugriff

Der anonyme Zugriff ist relativ leicht möglich. Führen Sie die folgenden Schritte aus:

  1. Falls das Einstellungs-Fenster nach dem Start nicht automatisch angezeigt wird, öffnen Sie dieses über den Menüeintrag Admin | Preferences... (in Version 2.0 finden Sie diese Konfiguration unter Admin | Login)
  2. Stellen Sie den Server ein. Als CVSROOT geben Sie Folgendes ein: :pserver:anoncvs@anoncvs.services.openoffice.org:/cvs .
  3. Bei Authentication stellen Sie "passwd" file on the CVS server (in Version 2.O nicht erforderlich) .
  4. Den Rest können Sie bei den Standardeinstellungen belassen. Schließen Sie den Dialog mit einem Klick auf OK .
  5. Sie können sich über Admin | Login am Server anmelden. Sie können ein beliebiges Passwort eingeben.
  6. Falls im Status-Fenster kein Fehler angezeigt wird (ein Fehler ist bei CVS "1"), sind Sie am Server angemeldet. Ansonsten überprüfen Sie bitte nochmal Ihre Internetverbindung und die Einstellungen.

Bei Schreibzugriff

Um sich anmelden zu können, muss erst ein SSH2-Tunnel hergestellt werden. Nähere Informationen dazu finden Sie hier. Anschließend verfahren Sie wie folgt:

  1. Falls das Einstellungs-Fenster nach dem Start nicht automatisch angezeigt wird, öffnen Sie dieses über den Menüeintrag Admin | Preferences...(in Version 2.0 finden Sie diese Konfiguration unter Admin | Login)
  2. Stellen Sie den Server ein. Als CVSROOT geben Sie Folgendes ein: :pserver:<oousername>@localhost:/cvs . <oousername> ersetzen Sie durch den Namen Ihres OpenOffice-Zugangs.
  3. Bei Authentication stellen Sie "passwd" file on the CVS server ein. (in Version 2.O nicht erforderlich)
  4. Den Rest können Sie bei den Standardeinstellungen belassen. Schließen Sie den Dialog mit einem Klick auf OK .
  5. Sie können sich über Admin | Login am Server anmelden. Als Passwort geben Sie Ihr OpenOffice-Passwort ein.
  6. Falls im Status-Fenster kein Fehler angezeigt wird (ein Fehler ist bei CVS "1"), sind Sie am Server angemeldet sein. Ansonsten überprüfen Sie bitte nochmal Ihre Internetverbindung und die Einstellungen.

Der manuelle Login ist nicht bei jedem Start erforderlich. Sie können einfach das Arbeiten beginnen.

Aktualisieren des CVS-Verzeichnisbaums auf der Festplatte

Nach jedem Start sollten Sie prüfen, ob die Dateien auf Ihrer Festplatte aktuell sind. Klicken Sie dazu mit der rechten Maustaste auf das oberste CVS-Verzeichnis ("oo" oder "de", je nachdem, ob Sie anonym oder per SSH2-Tunnel angemeldet sind) und klicken Sie im Kontextmenü auf Update selection...(unter Version 2.0 Update) . Nun werden die Dateien auf ihre Aktualität geprüft und ggf. aktualisiert. Grüne oder blaue Dateien bedeuten, dass diese aktualisiert wurden. Falls nur orange Verzeichnisse angezeigt werden, war kein Update notwendig.

Durchführen eines Checkouts

Was ist ein Checkout?

Bei einem Checkout wird ein bestimmtes Verzeichnis auf dem Server 1:1 auf die Festplatte übertragen. Dort können Sie die Dateien bearbeiten und die Änderungen wieder auf den Server übertragen. Falls Sie keinen Schreibzugriff haben, können Sie die Datei per Mail an jemanden senden, der die Datei auf dem Server aktualisieren kann.

Vorbereitung

Erstellen Sie auf Ihrer Festplatte einen Ordner, in den Sie die Dateien ablegen können. Nennen Sie ihn beispielsweise OpenOffice CVS .

Bei anonymem Zugriff

Führen Sie die folgenden Schritte durch:

  1. Klicken Sie auf den Menüeintrag Create | Checkout module...(unter 2.0 finden Sie diesen Punkt unter Remote | Checkout module)
  2. Geben Sie als Modul de/www ein, um alle Web-Dokumente des de-Projekts zu bekommen.
  3. Oder geben Sie als Modul de/documentation ein, um alle veröffentlichten Dokumentationen des de-Projekts zu bekommen.
  4. Als Zielverzeichnis geben Sie das bei den Vorbereitungen angelegte Verzeichnis an.
  5. Klicken Sie auf OK, um den Checkout vorzunehmen.
  6. Lesen Sie unten weiter.

Bei Schreibzugriff

Führen Sie die folgenden Schritte durch:

  1. Klicken Sie auf den Menüeintrag Create | Checkout module...(unter 2.0 finden Sie diesen Punkt unter Remote | Checkout module)
  2. Geben Sie als Modul de/www ein, um alle Dokumente des de-Projekts zu bekommen.
  3. Oder geben Sie als Modul de/documentation ein, um alle veröffentlichten Dokumentationen des de-Projekts zu bekommen.
  4. Als Zielverzeichnis geben Sie das bei den Vorbereitungen angelegte Verzeichnis an.
  5. Klicken Sie auf OK, um den Checkout vorzunehmen.
  6. Lesen Sie unten weiter.

Der Status des Checkouts

Nachdem Sie den Checkout eingeleitet haben, wird im Statusbereich der Fortschritt angezeigt. Sie erhalten eine Ausgabe, die ähnlich wie folgende aussieht (bei anonymem Zugriff weicht natürlich der Modulname ab):

cvs checkout -P de/www (in directory C:\OpenOffice-CVS)
cvs server: Updating de/www
U de/www/README_de_DE.txt
U de/www/about-cdrom.html
[...]
U de/www/images/spacer.gif

*****CVS exited normally with code 0*****

Die letzte Zeile bedeutet, dass kein Fehler aufgetreten ist. Würde hier eine "1" stehen, wäre ein Fehler aufgetreten. Das gilt für alle in diesem Dokument beschriebenen Vorgänge, vom Login bis zum Erstellen eines Diffs.

Änderungen zwischen zwei Versionen einer Datei feststellen

Vergleich einer älteren mit der aktuellen Version auf dem Server

Das geht am einfachsten, wenn Sie sich zuerst einen Graphen zeichnen lassen. Dazu wählen Sie bitte im Kontextmenü der entsprechenden Datei Graph selection (unter Version 2.0 "Graph") aus und klicken im erscheinenden Dialog auf OK . Sie sehen nun eine Grafik, in der alle vorhandenen Versionen angezeigt werden. Sie können eine Version auswählen und im Menü auf Graph | Diff selected (unter Version 2.0 "Graph | Diff") klicken, um die ausgwählte Version mit der neusten zu vergleichen.Klicken Sie im erscheinenden Dialog auf OK .

Den Graph können Sie übrigens über Graph | Close wieder schließen.

Vergleichen von zwei beliebigen Versionen

Dazu klicken Sie in der Dateiansicht im Kontextmenü auf Diff selection (unter Version 2.0 Diff) . Im erscheinenden Dialog markieren Sie den Eintrag Compare two revisions/tags/branches/dates (unter Version 2.0 entsprechender Eintrag in der Auswahlbox) . In die zwei Eingabefelder darunter können Sie nun zwei Versionsnummern eintragen.

Vergleichen von der Version auf der Festplatte mit einer Version auf dem Server

Rufen Sie den Dialog über den Eintrag Diff selection im Kontextmenü der zu vergleichenden Datei auf.

Vergleich mit der gleichen Version auf dem Server

Selektieren Sie dazu die Option Compare your local file with the same remote revision .

Vergleich mit einer anderen Version

Wählen Sie den Punkt Compare your local file with another revision/tag/branch/date aus. (unter Version 2.0 entsprechender Eintrag in der Auswahlbox)

Ausgabe, die bei einem Diff erzeugt wird

Nachdem Sie eine der oben aufgeführten Methoden ausgewählt haben, bekommen Sie eine Ausgabe, die der folgenden ähnelt. Diese ist bei jeder gewählten Methode ähnlich.

cvs diff -r 1.8 team.html (in directory C:\OpenOffice-CVS\de\www\dev\)
Index: team.html
===================================================================
RCS file: /cvs/de/www/dev/team.html,v
retrieving revision 1.8
retrieving revision 1.10
diff -r1.8 -r1.10
27c27
< <td>lesend</td>
---
> <td>schreibend</td>
112c112,114
< <td>www/de</td>
---
> <td>www/de<br>
> <a href="ftp://sunsite.informatik.rwth-aachen.de/pub/packages/OpenOffice">ftp-server</a>
> </td>
119c121,122
< <td>www/de</td>
---
> <td>www/de<br>
> <a href="http://whiteboard.openoffice.org/marketing/">marketing</a></td>

Im Kopf steht der Name der Datei und die zwei verglichenen Versionen (hier 1.8 und 1.10). Darunter folgen alle Änderungen. Zuerst wird die Zeilenangabe in der Quell- (links von dem "c") und der Zieldatei (rechts vom "c") angezeigt und darunter der Bereich in der Quelldatei (in rot) und in der Zieldatei (in blau).

Diese so genannten "diffs" kann man dazu verwenden, um eine Datei, die man übersetzt hat, zu aktualisieren. Es müssen ja nur die Bereiche aktualisiert werden, die auch im Original verändert wurden. Um Zugriff auf die Originaldateien zu bekommen, müssen Sie ein Checkout des entsprechenden Originalverzeichnisses machen. Die Verzeichnisse befinden sich alle unter <project>/www/<dir> , wobei <project> für das SUb-Projekt und <dir> für den Verzeichnisnamen steht, der auch auf der Website verwendet wird.
Zum besseren Verständnis ein Beispiel:
die Seite http://qa.openoffice.org/issue_handling/project_issues.html finden Sie in dem Verzeichnis qa/www/issue_handling .

Verwendung eines externen Diff-Programms

Ich habe das Programm WinMerge verwendet, das direkt mit WinCVS zusammenarbeitet. Sie können es hier herunterladen. Dort ist auch eine DLL erhältlich, die die Benutzeroberfläche ins Deutsche ändert. Sie richten WinMerge wie folgt ein:

  1. Installieren Sie WinMerge.
  2. Entpacken Sie die Sprach-DLL in das WinMerge-Verzeichnis.
  3. Starten Sie WinMerge über das Startmenü.
  4. Wählen Sie in dem Dialog View | Language... die Sprache Deutsch (Deutschland) .
  5. Sie können WinMerge wieder schließen.
  6. Öffnen Sie in WinCVS den Optionsdialog über Admin | Preferences .
  7. Wechseln Sie auf die Seite WinCvs .
  8. Setzen Sie einen Haken vor External diff program .
  9. Klicken Sie auf ...
  10. Wechseln Sie in das Verzeichnis, in das Sie WinMerge installiert haben und wählen Sie die winmerge.exe aus.
  11. Schließen Sie den Dialog und die Optionen jeweils mit einem Klick auf OK .
  12. Beim nächsten Diff, das Sie anfertigen, wählen Sie im Diff-Dialog in der linken unteren Ecke Use the external diff aus.

In Zukunft startet automatisch WinMerge, wenn Sie ein Diff anfertigen. Dort sehen Sie die Änderungen durch farbliche Hervorhebung in der kompletten Datei und erhalten nicht nur die Auszüge.

Die folgenden Vorgänge erfordern Schreibzugriff auf den Server.

Neue Dateien auf den Server stellen

Kopieren Sie die Datei, die auf den Server soll, in das passende Verzeichnis des CVS-Verzeichnisbaums auf Ihrer Festplatte, der beim Checkout angelegt wurde. Wählen Sie die Datei aus und klicken Sie im Menü auf Modify | Add selection (Unter Version 2.0 Modify | Add) . Die Datei wird zum Übertragen auf den Server markiert und erst bei einem "Commit" der Datei tatsächlich übertragen.

Änderungen an einer Datei an den Server übertragen

Sie haben eine Datei geändert und möchten die Änderungen an den Server übertragen? Kein Problem, wählen Sie in der Dateiliste die geänderte Datei aus (die übrigens ein rotes Icon hat) und klicken Sie im Kontextmenü auf Commit selection (Unter Version 2.0 Commit) . Dort können Sie einen kurzen Kommentar eingeben. Es empfiehlt sich mit ein paar Wörtern die Änderungen zu beschreiben. Sobald Sie auf OK klicken werden die Änderungen übertragen.

Valid XHTML 1.0 Transitional