Node:CVS y argumentos implícitos, Next:Enviar cambios al repositorio, Previous:Ver lo que Ud. (y otros) han hecho - comandos Update y Diff, Up:Un día con CVS
En cada uno de los comandos de CVS explicados hasta el momento, quizás
se haya dado cuenta de que no hemos indicado fichero alguno en la línea
de comando. Por ejemplo, hemos utilizado
floss$ cvs diff
en lugar de
floss$ cvs diff hello.c
y
floss$ cvs update
en lugar de
floss$ cvs update hello.c
El principio que dicta esto es que si usted no indica ningún nombre de
fichero, CVS actuará sobre todos los ficheros sobre los que el comando
resultaría apropiado. Esto incluye también ficheros en subdirectorios
situados por debajo del directorio actual; CVS automáticamente desciende
desde el directorio actual hasta cada subdirectorio en el árbol. Por
ejemplo, si modificó b-subdir/random.c y a-subdir/subsubdir/fish.c,
invocar una actualización podría devolver unos resultados como éstos:
floss$ cvs update cvs update: Updating . M hello.c cvs update: Updating a-subdir cvs update: Updating a-subdir/subsubdir M a-subdir/subsubdir/fish.c cvs update: Updating b-subdir M b-subdir/random.c floss$
o mejor aún:
floss$ cvs -q update M hello.c M a-subdir/subsubdir/fish.c M b-subdir/random.c floss$
Nota: La opción -q es una versión "ligera" de -Q. Si se hubiera usado -Q, el comando no habría mostrado nada en absoluto, porque las notas de modificación son consideradas mensajes de información no esenciales. La versión en minúsculas, -q, es menos estricta: suprime los mensajes que posiblemente no queramos, a la vez que permite que otros mensajes, posiblemente más útiles, sí lleguen hasta nosotros.
También puede nombrar ficheros específicos que desee actualizar:
floss$ cvs update hello.c b-subdir/random.c M hello.c M b-subdir/random.c floss$
y CVS sólo examinará estos ficheros, ignorando cualquier otro.
Lo cierto es que es más habitual no limitar la actualización a determinados ficheros, puesto que en la mayoría de los casos querrá actualizar el árbol de directorios al completo de una sola vez. En todo caso, recuerde que las actualizaciones que hacemos aquí a modo de ejemplo sólo muestran que algunos ficheros se han modificado de forma local, porque aún no se ha cambiado nada en el repositorio. Cuando otras personas están trabajando en el mismo proyecto que usted, siempre existe la posibilidad de que la actualización incorpore algunos cambios nuevos del repositorio en sus ficheros locales, en cuyo caso sí puede resultarle útil indicar los ficheros en concreto que desea actualizar.
El mismo principio puede aplicarse a otros comandos de CVS. Por ejemplo,
con diff, puede ver los cambios habidos en un fichero cada vez:
floss$ cvs diff -c b-subdir/random.c Index: b-subdir/random.c =================================================================== RCS file: /usr/local/cvs/miproyecto/b-subdir/random.c,v retrieving revision 1.1.1.1 diff -c -r1.1.1.1 random.c *** b-subdir/random.c 1999/04/18 18:18:22 1.1.1.1 --- b-subdir/random.c 1999/04/19 06:09:48 *************** *** 1 **** ! /* Un fichero en C completamente vacío. */ --- 1,8 -- ! /* Imprimir un número aleatorio. */ ! ! #include <stdio.h> ! ! void main () ! { ! printf ("un número aleatorio\n"); ! }
o ver todos los cambios de una sola vez (agárrese al asiento, esto va a ser un
diff bastante grande):
floss$ cvs -Q diff -c Index: hello.c =================================================================== RCS file: /usr/local/cvs/miproyecto/hello.c,v retrieving revision 1.1.1.1 diff -c -r1.1.1.1 hello.c *** hello.c 1999/04/18 18:18:22 1.1.1.1 --- hello.c 1999/04/19 02:17:07 *************** *** 4,7 **** --- 4,8 -- main () { printf ("¡Hola, mundo!\n"); + printf ("¡Adiós, mundo!\n"); } Index: a-subdir/subsubdir/fish.c =================================================================== RCS file: /usr/local/cvs/miproyecto/a-subdir/subsubdir/fish.c,v retrieving revision 1.1.1.1 diff -c -r1.1.1.1 fish.c *** a-subdir/subsubdir/fish.c 1999/04/18 18:18:22 1.1.1.1 --- a-subdir/subsubdir/fish.c 1999/04/19 06:08:50 *************** *** 1 **** ! /* Un fichero en C completamente vacío. */ --- 1,8 -- ! #include <stdio.h> ! ! void main () ! { ! while (1) { ! printf ("fish\n"); ! } ! } Index: b-subdir/random.c =================================================================== RCS file: /usr/local/cvs/miproyecto/b-subdir/random.c,v retrieving revision 1.1.1.1 diff -c -r1.1.1.1 random.c *** b-subdir/random.c 1999/04/18 18:18:22 1.1.1.1 --- b-subdir/random.c 1999/04/19 06:09:48 *************** *** 1 **** ! /* Un fichero en C completamente vacío. */ --- 1,8 -- ! /* Imprimir un número aleatorio. */ ! ! #include <stdio.h> ! ! void main () ! { ! printf ("un número aleatorio\n"); ! }
En cualquier caso, como puede ver en estos diffs, queda claro que el proyecto está listo para debutar. Enviemos los cambios al repositorio.