su2 :: software · texts · graphics · photography · uni · me · links

up

CVS Mini Howto


Dieses Howto beschreibt, wie man unter Linux/Unix auf ein CVS Repository zugreifen kann. Die Beispiele die ich ich benutzt habe, sind die Einstellungen für Kmud, aber es sollte relativ einfach sein, das für andere Repositories anzupassen.

Zu allererst solltest du sicherstellen, dass das Tool cvs installiert ist. Dann setze eine Umgebungsvariable namens CVSROOT (bei bash: export) und zwar auf den Wert :pserver:account@barney.cs.uni-potsdam.de:/home/cvs/kmud. Das account@.. bedeutet du willst der User "account" sein. Nimm da einfach den Account der für dich eingerichtet worden ist. Dies ist nur ein CVS Account kein echter Login auf den Rechner. barney.cs.uni-potsdam.de ist der CVS Server und /home/cvs/kmud das Verzeichnis des Repositories dort.

Um dich einzuloggen, gib einfach cvs login ein. Das Passwort nach dem du gefragt wirst ist dein gewähltes (oder zugewiesenes) CVS Passwort. Hinweis: dieses ist nichts allzusehr geheimes, beim CVS kann keiner was richtig löschen, man kann immer einen beliebig alten Zustand wieder herstellen.

Jetzt suchst du dir ein Unterverzeichnis worin du die Dateien bearbeiten möchtest. Gehe in das Verzeichnis und gib da drin cvs checkout kmud2 ein. Dies holt eine komplett neue Kopie aller Dateien. "kmud2" so nennt sich das Modul innerhalb des Repositories (es ist möglich beliebig viele weitere Module anzulegen). Jetzt solltest du ein Verzeichnis CVS und ein Verzeichnis kmud2 haben. In kmud2 wieder ein Unterverzeichnis CVS und lauter Dateien. In den CVS Verzeichnissen werden einige für CVS wichtige Informationen gespeichert. Dort nichts löschen oder verändern!

Die Dateien im kmud2 Verzeichnis sind die von Bedeutung und die du jetzt bearbeiten kannst. Wenn du dann die Änderungen ins CVS übernehmen willst, mache ein cvs commit. Du landest dann in einem vi-ähnlichen Editor (oder was auch immer du bei dir als $EDITOR eingestellt hast), wo du deine Änderungen kommentieren kannst. Bitte nach Möglichkeit immer detaillierte Angaben machen, damit andere wissen, was gemacht wurde.

Wenn jetzt jemand anderes was geändert hat und du diese Änderungen auch in deinem Arbeitsverzeichnis haben möchtest, dann gib cvs update -dP ein. Dabei werden alle Dateien auf den aktuellen Stand gebracht. Das bedeutet auch, dass noch nicht vorhandene Dateien (sei es, weil sie jemand anderes zum CVS hinzugefügt hat oder du eine bei dir gelöscht hast) neu aus dem CVS geholt werden. Falls du also mal eine Datei so verhaun hast, dass du lieber das Original wieder haben willst, dann lösche einfach die Datei und mache ein Update. Dieses Update solltest du am besten einmal machen, bevor du anfängst am Code zu arbeiten und einmal bevor du ein "commit" machst.

Wenn du eine Datei neu angelegt hast und die auch mit ins CVS soll, dann gib cvs add Datei ein. Beim nächsten commit wird sie dann mit ins CVS Repository geschickt. cvs remove ist das passende Gegenstück zu add. Bevor man eine Datei per remove aus dem CVS löschen kann, muss sie aber vorher richtig gelöscht (physikalisch, von der Festplatte) worden sein.

Tja, das waren auch schon die wichtigsten Befehle. Für Paranoia-Freaks gibts noch cvs logout. Nach einem Login steht nämlich in der Datei ~/.cvspass dein CVS Passwort drin (nicht wirklich sicher verschlüsselt). Aber wenn du dich ausloggst musst du dich beim nächsten mal wieder einloggen und da man wie gesagt nicht viel anstellen kann mit dem Account kannst du dir die Tipperei auch sparen. Alternativ zur Umgebungsvariable kannst du auch das CVSROOT mit der Option "-d :pserver:account@barney.cs.uni-potsdam.de:/home/cvs/kmud" bei jedem Kommando mit angeben.

Für weiterreichende Informationen ist die Manpage zu CVS auch nicht schlecht und es gibt auch ein sehr gutes FAQ.

Es gibt auch graphische Frontends für CVS. Ich kenne z.B. Cervisia. Es ist wunderbar, um bestimmte Dinge zu visualisieren (z.B. was sich zwischen Version X und Y geändert hat), aber ich mag das Kommandozeilenprogramm für die hauptsächliche Arbeit mit CVS mehr.


1grey

Copylight (cc) 2001-2006 Stephan Uhlmann. Last change: 2002-05-01
Verbatim copying and distribution are permitted, provided this notice is preserved.