CVS-Kurzanleitung #
Notizen von T. Bayen bei der Lektüre des cvsbook-Pakets mit dem Ziel, eine Kurzreferenz zu bekommen. Weitere Doku gibts unter http://www.cvshome.org/docs/manual.
Die Nachfolge von CVS soll SubVersion antreten. Zur Benutzung von CVS und SubVersion unter Debian ist auch http://qref.sourceforge.net/Debian/reference/ch-vcs.de.html ganz interessant.
Repository angeben: -d ... #
cvs -d /usr/local/cvs command
oder
export CVS_RSH=ssh cvs -d :ext:tbayen@cvs.bayen.loc:/usr/local/cvs command
oder
export CVS_RSH=ssh export CVSROOT=:ext:tbayen@cvs.bayen.loc:/usr/local/cvs cvs command
Server einrichten / Repository auf Server neu anlegen #
cvs -d ... init
User müssen write-permissons für das Verzeichnis ... haben. Im Internet sollte pserver eingerichtet werden, ansonsten braucht jeder cvs-Nutzer ein login (für ssh).
Wer das Debian-Paket cvs installiert und auf alle Fragen mit Enter antwortet, hat ein fertiges Repository unter /var/lib/cvs, was IMHO ein guter Platz ist. Dann sollte man mit "adduser <username> src" für den Schreibzugriff aufs Repository sorgen.
Projekt neu anlegen #
cd myproject cvs import -m 'log message' projektname username start
Arbeitskopie auschecken #
cvs checkout myproject
Änderungen herausfinden #
Fremde Änderungen holen, dabei eigene (uncommitted) anzeigen
cvs update
Wer weniger geschwaetzige Ausgaben will:
cvs -q update
Damit zeigt man nur die geaenderten Dateien an, nicht jedoch das ganze Geblubber, welche Verzeichnisse cvs gerade ueberprueft.
Und wenn man mitbekommen will, ob es evtl. neue Unterverzeichnisse gibt:
cvs -q update -d
Und wenn man nur wissen will, was sich geaendert hat, aber die Aenderungen nicht gleich uebernehmen will:
cvs -n -q update
(Auch hier kann man ein -d anhaengen, wenn man neue Unterverzeichnisse sehen will.)
Diffs anzeigen
cvs diff cvs -q diff # Quiet: Es werden nicht alle Verzeichnisse ausgegeben cvs -q diff -c # context-Diff-Format (evtl. lesbarer)
Check-In / Commit #
cvs commit -m "log Text"
Dateien zufügen #
cvs add filename cvs add -kb filename # Binary hinzufügen cvs update -d # holt auch neue Verzeichnisse
rm filename cvs remove filename cvs update -P # entfernt leere Verzeichnisse
Sonstiges #
cvs status [filename] # Datum, Version, etc. ausgeben cvs log [filename] # Logbuch ausgeben cvs diff -r 1.2 -r 1.3 text.c # Unterschied zwischen zwei Versionen cvs annotate filename # zeigt zu jeder Zeile, wer sie wann geschrieben hat cvs tag bla # Marke setzen, kann statt Rev-Nr. benutzt werden cvs export -r bla # wie auschecken, aber ohne Verwaltungsbla.
Keyword Expansion #
$Author$ $Date$ $Id$ - filename,revision,date,author $Revision$ $Log$ - Hier wird das jeweils neue Log mit eingefügt, alte bleiben stehen # $Log$ - vor jeder Log-Zeile steht das Prefix #