Dort gibt es auch Dokumentation z.B. ein Manual im PDF Format
diff
und patch
Allgemeiner Aufruf: cvs [global options] command [command options]
[args]
Die Befehle arbeiten fast alle...
$CVSROOT
auf das Verzeichnis des Repository setzen
:ext:<user>@<host>:<pfad>
wenn sich
das Repository auf einem Rechner im Internet befindet
Zusätzlich muss $CVS_RSH
auf eine Shell gesetzt
werden, die zum einloggen benutzt wird. Für die Uni ist das die Secure
Shell, also ssh
:pserver:<user>@<host>:<pfad>
wenn
cvs als server läuft. Ist ziemlich unsicher und wird wohl deshalb in
der Uni auch nicht gemacht-d <pfad>
benutzenlogin
(in der Uni nicht nötig/möglich)
checkout <module>
status [<file(s)>]
update
lösen mussdiff <file(s)>
log <file>
update [<file(s)>]
commit [-m "<comment>"] [<file(s)>]
log
)$CVSEDITOR
oder $EDITOR
festgelegt:q<enter>
wieder heraus
;-)add [-m "<comment>"] <file(s)>
commit
wirklich
übernommencommit
nicht
obligatorisch-kb
mit angebenremove <file(s)>
rm
, del
o.ä.)add
wird erstmal nur lokal vermerkt, das die
Datei aus dem Repository gelöscht werden sollcommit
wird die Datei im Repository
gelöscht (nicht wirklich...)-f
übernimmt cvs das löschen der Datei
im Arbeitsverzeichnisupdate
die globale Option
-P
angibt.-d <cvsroot>
gibt das Verzeichnis zum Repository an.
Alternativ zur Umgebunsvariable.-z n
wobei n
eine Ziffer von 0 bis 9 ist, gibt
die Kompression (0=gar nicht, 9=stark) für die Übertragung der Daten
an.lokale Datei und Repository sind identisch
Datei im Arbeitsverzeichnis wurde verändert
Datei wurde im Arbeitsverzeichnis mit add
"markiert"
Datei wurde im Arbeitsverzeichnis mit remove
als gelöscht
"markiert"
Datei wurde im Repository geändert, d.h. eine geänderte Revision wurde eingecheckt.
Die Bezeichnung ist etwas irreführend, weil kein checkout
,
sondern ein update
ausgeführt werden muss!!!
Wie 'Needs Checkout' nur das ein Patch übertragen wird anstelle der gesamten Datei.
Datei wurde sowohl im Repository als auch lokal im Arbeitsverzeichnis verändert und beide Revisionen müssen zusammengeführt werden. Hier können Konflikte auftreten.
Wie 'Locally Modified', nur das ein vorhergehendes update
einen Konflikt gemelded hat, der noch nicht aufgelöst wurde.
Die Datei im lokalen Arbeitsverzeichnis ist cvs "unbekannt". Entweder
wurde sie noch nicht mit add "markiert" oder die Datei gehört gar nicht
ins Repository. Zum Beispiel *.class
Dateien. Dann sollte man
sie in die .cvsignore Datei aufnehmen.
Treten auf wenn eine Datei sowohl im Repository als auch lokal im Arbeitsverzeichnis geändert wurden und sich geänderte Zeilen überschneiden.
Wenn die Datei an unterschiedlichen Stellen geändert wurde, kann cvs beide Revisionen selbstständig zusammenführen.
Folgendes passiert bei einem Konflikt:
.#<dateiname>.<revisionsnummer>
wird
angelegt<<<<<<< <dateiname>
... Quelltext aus der lokalen Datei ...
=======
... Quelltext aus der Datei aus dem Repository ...
>>>>>>> <revisionsnummer>
-