= 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 #

[{Tag VersionsVerwaltung}]