7.2 Dateien entfernen
Verzeichnisse ändern sich ständig, neue Dateien kommen
hinzu und alte verschwinden. Trotzdem will man immer in der Lage
sein eine exakte Kopie einer alten Version wiederherzustellen.
Mit folgenden Schritten entfernen Sie eine Datei und
können später trotzdem den alten Zustand wiederherstellen:
-
Stellen sie sicher, dass Sie keine Änderungen an der Datei
vorgenommen haben, die noch nicht committet sind.
1.3.4 Unterschiede anzeigen zeigt eine Möglichkeit dies zu tun.
Die Kommandos
status und update können ebenso
dabei helfen. Wenn Sie die Datei entfernen, bevor Änderungen
committed wurden, kann sie nicht mehr in der Version hergestellt
werden, die zum Zeitpunkt des Löschens bestanden hat.
-
Entfernen Sie die Datei aus Ihrer Arbeitskopie des
Verzeichnisses (zum Beispiel mit
rm).
-
Teilen Sie CVS mittles `cvs remove filename' mit,
dass die Datei gelöscht werden soll.
-
Mit `cvs commit filename' wird die Datei dann
wirklich aus dem Repository entfernt.
Wenn Sie das Entfernen der Datei bestätigen (commit),
registriert CVS die Tatsache, dass die Datei nicht
mehr länger existiert. Eine Datei kann durchaus in einigen
Zweigen vorhanden sein, während sie in anderen fehlt, oder
es kann zu einem späteren Zeitpunkt eine Datei mit gleichem
Namen hinzugefügt werden. CVS wird die Datei stets richtig
erzeugen oder weglassen, je nachdem welche Argumente der
`-r' und der `-D' Option bei einem Aufruf von
checkout oder update übergeben werden.
- Kommando: cvs remove [options] files ...
Nimmt Dateien in die Liste der zu löschenden Dateien auf
(Dateien, die nicht aus der Arbeitskopie des Verzeichnisses
gelöscht worden sind, werden nicht bearbeitet).
Die Dateien werden solange nicht gelöscht, bis Sie mit
commit das Entfernen bestätigen. Eine vollständige
Auflistung aller Optionen findet sich in B. Quick reference to CVS commands.
Hier ein Beispiel, bei dem mehrere Dateien gelöscht werden:
| | $ cd test
$ rm *.c
$ cvs remove
cvs remove: Removing .
cvs remove: scheduling a.c for removal
cvs remove: scheduling b.c for removal
cvs remove: use 'cvs commit' to remove these files permanently
$ cvs ci -m "Removed unneeded files"
cvs commit: Examining .
cvs commit: Committing .
|
Mit der Option `-f' können die Dateien auch in einem
Schritt aus dem Verzeichnis und dem Repsoitory gelöscht werden.
Obiges Beispiel sieht dann so aus:
| | $ cd test
$ cvs remove -f *.c
cvs remove: scheduling a.c for removal
cvs remove: scheduling b.c for removal
cvs remove: use 'cvs commit' to remove these files permanently
$ cvs ci -m "Removed unneeded files"
cvs commit: Examining .
cvs commit: Committing .
|
Wenn Sie nach dem remove Kommande Ihre Meinung ändern,
können Sie remove mit einem add Kommando wieder
rückgängig machen.
| | $ ls
CVS ja.h oj.c
$ rm oj.c
$ cvs remove oj.c
cvs remove: scheduling oj.c for removal
cvs remove: use 'cvs commit' to remove this file permanently
$ cvs add oj.c
U oj.c
cvs add: oj.c, version 1.1.1.1, resurrected
|
Wenn Sie Ihren Fehler schon vor dem remove
Kommando bemerken, können Sie mit update
die Datei wiederbekommen.
| | $ rm oj.c
$ cvs update oj.c
cvs update: warning: oj.c was lost
U oj.c
|
Eine Datei wird nur aus dem Zweig entfernt,
mit dem Sie im Moment arbeiten ( 5. Branching and merging).
Später können Dateien auch aus anderen Zweigen entfernt werden
( 5.9 Merging can add or remove files).
|