2008-09-27 48 views

Respuesta

37

creo que:

cvs add file.txt 
cvs commit file.txt 

... resucitarán desde el ático.

21

He encontrado que no puede usar cvs add para deshacer una operación cvs remove que ya se ha realizado. Por lo que este funciona:

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

pero esto no funciona:

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

El método más simple que he encontrado hasta ahora es ejecutar cvs status file.txt para averiguar el número de revisión. Luego agarra el contenido de la revisión y añadir de nuevo en:

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

¿Olvidó cuál era la última revisión del archivo?cvs log [FILENAME] – jjohn

3

Dada la falta de éxito de Harry, he aquí una transcripción de lo que hice para demostrar que la respuesta anterior funciona (disculpas de antemano por su longitud):

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 

Está claro que está haciendo lo correcto, pero el comportamiento que está observando es diferente. Quizás haya una diferencia debido a la versión de CVS (estoy usando 1.11.22 en Windows).

+0

Gracias Jason por tomarse su tiempo para proporcionar una respuesta detallada. – Harry

4

El cvs add no funcionó porque la versión de mi cvs en el servidor era muy antigua. He confirmado que funciona bien con la versión 1.11.22 de CVS.

+0

Me alegro de haber llegado al fondo de eso, Harry. Me estaba preocupando un poco. :-) –

0

Esto es lo que hago. Simplemente creo un archivo vacío del mismo nombre, luego lo agrego y lo comprometo, luego recupero la versión anterior y la vuelvo a confirmar.

4

Probar:

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

cd en el directorio $ CVSROOT y el directorio del módulo correspondiente y luego el ático, editar el fileOfInterest, V y cambiar la línea que dice Muerto; Exp; y luego mueva el archivo de interés, v al directorio de arriba.

Una actualización en el módulo desprotegido ahora restaurará el archivo.

1

La forma más simple, aunque posible, menos elegante de hacerlo es 'cd' en el directorio CVS en el mismo lugar que el archivo eliminado.

Luego edite el archivo llamado "Entradas".

Encuentra la línea que representa el archivo eliminado. Tenga en cuenta que hay un '-' después del/

Elimine el '-', guarde el archivo y ¡listo!

Puaj, pero funciona.

Cuestiones relacionadas