Wie stelle ich eine gelöschte Datei in CVS?
-
02-07-2019 - |
Frage
Ich habe ein in der Datei aus dem CVS-Zweig geprüft entfernt, das heißt:.
cvs remove -f file.txt
cvs commit
Wie stelle ich die Datei?
Lösung
Ich glaube, dass:
cvs add file.txt
cvs commit file.txt
... wird es vom Dachboden wieder aufleben lassen.
Andere Tipps
Ich habe festgestellt, dass Sie nicht cvs add
verwenden können, einen cvs remove
Vorgang rückgängig zu machen, die bereits comitted wurde. So funktioniert das:
$ cvs remove -f file.txt
$ cvs add file.txt
, aber das funktioniert nicht:
$ cvs remove -f file.txt
$ cvs commit
$ cvs add file.txt
Die einfachste Methode, die ich bisher gefunden habe ist cvs status file.txt
ausführen, um die Versionsnummer zu erfahren. Ergreifen Sie dann den Inhalt der Revision und fügen Sie sie zurück in:
$ cvs update -p -r rev file.txt > file.txt
$ cvs add file.txt
$ cvs commit
Die cvs add
nicht für mich arbeiten, weil meine cvs Version auf dem Server sehr alt war. Ich habe bestätigt, dass es funktioniert gut mit CVS-Version 1.11.22.
Versuchen:
cvs add file.txt
cvs update file.txt
cvs commit file.txt
Harrys Mangel an Erfolg gegeben, hier ist eine Abschrift von dem, was ich tat, zu zeigen, dass die oben genannte Antwort funktioniert (Entschuldigung im Voraus für seine Länge):
C:\foo>dir
Volume in drive C is Local Disk
Volume Serial Number is 344F-1517
Directory of C:\foo
28/09/2008 05:12 PM <DIR> .
28/09/2008 05:12 PM <DIR> ..
28/09/2008 05:12 PM <DIR> CVS
28/09/2008 05:11 PM 19 file.txt
1 File(s) 19 bytes
3 Dir(s) 22,686,416,896 bytes free
C:\foo>cvs status file.txt
===================================================================
File: file.txt Status: Up-to-date
Working revision: 1.2 Sun Sep 28 07:11:58 2008
Repository revision: 1.2 C:\jason\CVSROOT/foo/file.txt,v
Sticky Tag: (none)
Sticky Date: (none)
Sticky Options: (none)
C:\foo>cvs rm -f file.txt
cvs remove: scheduling `file.txt' for removal
cvs remove: use 'cvs commit' to remove this file permanently
C:\foo>cvs commit -m "" file.txt
Removing file.txt;
C:\jason\CVSROOT/foo/file.txt,v <-- file.txt
new revision: delete; previous revision: 1.2
done
C:\foo>cvs status file.txt
===================================================================
File: no file file.txt Status: Up-to-date
Working revision: No entry for file.txt
Repository revision: 1.3 C:\jason\CVSROOT/foo/Attic/file.txt,v
C:\foo>more file.txt
Cannot access file C:\foo\file.txt
C:\foo>dir
Volume in drive C is Local Disk
Volume Serial Number is 344F-1517
Directory of C:\foo
28/09/2008 05:12 PM <DIR> .
28/09/2008 05:12 PM <DIR> ..
28/09/2008 05:12 PM <DIR> CVS
0 File(s) 0 bytes
3 Dir(s) 22,686,400,512 bytes free
C:\foo>cvs add file.txt
cvs add: Resurrecting file `file.txt' from revision 1.2.
U file.txt
cvs add: Re-adding file `file.txt' (in place of dead revision 1.3).
cvs add: use 'cvs commit' to add this file permanently
C:\foo>cvs commit -m "" file.txt
Checking in file.txt;
C:\jason\CVSROOT/foo/file.txt,v <-- file.txt
new revision: 1.4; previous revision: 1.3
done
C:\foo>more file.txt
This is a test...
C:\jason\work\dev1\nrta\foo>dir
Volume in drive C is Local Disk
Volume Serial Number is 344F-1517
Directory of C:\jason\foo
28/09/2008 05:15 PM <DIR> .
28/09/2008 05:15 PM <DIR> ..
28/09/2008 05:13 PM <DIR> CVS
28/09/2008 05:13 PM 19 file.txt
1 File(s) 19 bytes
3 Dir(s) 22,686,375,936 bytes free
Offensichtlich tut er das Richtige, aber das Verhalten er beobachten ist anders. Vielleicht gibt es einen Unterschied aufgrund CVS-Version (ich verwende 1.11.22 unter Windows).
cd in $ CVSROOT-Verzeichnis und das jeweilige Modulverzeichnis und dann dem Dachboden, Bearbeiten Sie die fileOfInterest, v und ändern Sie die Zeile, die Toten sagt; Exp zu; und dann die fileOfInterest bewegen, v in das Verzeichnis oben.
Ein Update im Modul ausgecheckt wird nun die Datei wiederherstellen.
Die einfachste, wenn möglich, am wenigsten elegante Art und Weise, dies zu tun ist, um ‚cd‘ in das CVS-Verzeichnis in der gleichen Stelle wie die entfernte Datei.
bearbeiten Sie die Datei mit dem Namen "Einträge".
Suchen Sie die Zeile Ihre entfernt Datei angibt. Beachten Sie, dass es ein ‚-‘ nach dem /
Entfernen Sie die '-'!, Die Datei und voila speichern
Yuck, aber es funktioniert.
Hier ist, was ich tue. Ich habe gerade eine leere Datei mit dem gleichen Namen erstellen, fügen Sie dann und verpflichten sie, dann rufen Sie die ältere Version und wieder begehen das.