2008-09-27 10 views

Odpowiedz

37

Wierzę, że:

cvs add file.txt 
cvs commit file.txt 

... wskrzesi go ze strychu.

21

Zauważyłem, że nie można użyć cvs add do cofnięcia operacji cvs remove, która już się zakończyła. Tak to działa:

$ cvs remove -f file.txt 
$ cvs add file.txt 

ale to nie działa:

$ cvs remove -f file.txt 
$ cvs commit 
$ cvs add file.txt 

Najprostszym sposobem znalazłem tak daleko jest do uruchomienia cvs status file.txt, aby dowiedzieć się numer wersji. Następnie chwycić zawartość rewizji i dodać go ponownie:

$ cvs update -p -r rev file.txt > file.txt 
$ cvs add file.txt 
$ cvs commit 
+1

Nie pamiętasz ostatniej wersji pliku?cvs log [FILENAME] – jjohn

3

Biorąc pod uwagę brak Harry'ego sukcesu, oto zapis tego, co zrobiłem, aby wykazać, że powyższa odpowiedź działa (przeprosiny z góry do jego długości):

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 

Najwyraźniej postępuje słusznie, ale zachowanie, które obserwuje, jest inne. Być może jest różnica między wersją CVS (używam wersji 1.11.22 w systemie Windows).

+0

Dziękuję Jasonowi za poświęcenie czasu na udzielenie szczegółowej odpowiedzi. – Harry

4

Nie działa dla mnie cvs add, ponieważ moja wersja cvs na serwerze była bardzo stara. Potwierdziłem, że działa dobrze z wersją CVS 1.11.22.

+0

Cieszę się, że doszliśmy do tego, Harry. Byłem trochę zaniepokojony. :-) –

0

Oto, co robię. Po prostu utworzę pusty plik o tej samej nazwie, a następnie dodam i zatwierdzam, następnie pobierz starszą wersję i ponownie ją zatwierdz.

4

Spróbuj:

cvs add file.txt 
cvs update file.txt 
cvs commit file.txt 
3

cd do katalogu $ CVSROOT i odpowiedni katalog moduł, a następnie na poddaszu Edycja fileOfInterest, V i zmienić linię, która mówi martwe; do Exp; a następnie przenieść plikOfInterest, v do powyższego katalogu.

Aktualizacja w module wyewidencjonowanym spowoduje odtworzenie pliku.

1

Najprostszym, choć najmniej eleganckim sposobem na to jest "cd" do katalogu CVS w tym samym miejscu, co usunięty plik.

Następnie edytuj plik o nazwie "Wpisy".

Znajdź linię reprezentującą usunięty plik. Zauważ, że po "/"/ usuniesz "-", zapisz plik i voila!

Fuj, ale działa.

Powiązane problemy