Node:Historial -- Un resumen de la actividad del repositorio, Next:Anotaciones -- Sumario detallado de la actividad del proyecto, Previous:Deshacerse de una copia de trabajo, Up:CVS avanzado
En Administracion del Repositorio comenté brebemente la orden history
.
Ésta orden muestra un resumen de todos las obtenciones checkouts,
entregas commits, actualizaciones updates, etiquetas
rtags, y entregas finales releases hechos en el repositorio
(al menos, desde que logging
fue activado mediante la creación del
fichero CVSROOT/history en el repositorio). Puede controlar el formato y
contenidos del resumen con varias optciones.
El primer paso es asegurarse que logging
esta activo en su repositorio.
El administrador del repositorio debe asegurarse de que existe un fichero
history
floss$ cd /usr/local/newrepos/CVSROOT floss$ ls -l history ls: history: No such file or directory floss$
y si no exite crearlo de la siguiente forma:
floss$ touch history floss$ ls -l history -rw-r--r-- 1 jrandom cvs 0 Jul 22 14:57 history floss$
Este para el historial, history
debe ser escribible por cualquiera que
use el repositorio ya que de otra forma se obtendrá un error cada vez que
ejecute alguna orden de CVS que modifique ese fichero. La foram más simple
es hacer el fichero escribible por todo el mundo:
floss$ chmod a+rw history floss$ ls -l history -rw-rw-rw- 1 jrandom cvs 0 Jul 22 14:57 history floss$
Si el repositorio fue creado con la orden cvs init
, el fichero
history
ya existirá. Tal vez que tuviese que arreglar los permisos
de escritura.
Se asume en el resto de los ejemplos que history logging
se ha activado
durante un tiempo y por lo tanto ha habido tiempo para alguna información
se haya acumulado en el historial (fichero history
).
La salida de cvs history
es en cierta forma dificil (probablemente se
creó pensando en que se tratataría mediante otros programas y no mediante
personas, aunque con un poco de estudio se puede leer). Ejecutémoslo y
veamos lo que obtenemos.
paste$ pwd /home/qsmith/myproj paste$ cvs history -e -a O 07/25 15:14 +0000 qsmith myproj =mp= ~/* M 07/25 15:16 +0000 qsmith 1.14 hello.c myproj == ~/mp U 07/25 15:21 +0000 qsmith 1.14 README.txt myproj == ~/mp G 07/25 15:21 +0000 qsmith 1.15 hello.c myproj == ~/mp A 07/25 15:22 +0000 qsmith 1.1 goodbye.c myproj == ~/mp M 07/25 15:23 +0000 qsmith 1.16 hello.c myproj == ~/mp M 07/25 15:26 +0000 qsmith 1.17 hello.c myproj == ~/mp U 07/25 15:29 +0000 qsmith 1.2 goodbye.c myproj == ~/mp G 07/25 15:29 +0000 qsmith 1.18 hello.c myproj == ~/mp M 07/25 15:30 +0000 qsmith 1.19 hello.c myproj == ~/mp O 07/23 03:45 +0000 jrandom myproj =myproj= ~/src/* F 07/23 03:48 +0000 jrandom =myproj= ~/src/* F 07/23 04:06 +0000 jrandom =myproj= ~/src/* M 07/25 15:12 +0000 jrandom 1.13 README.txt myproj == ~/src/myproj U 07/25 15:17 +0000 jrandom 1.14 hello.c myproj == ~/src/myproj M 07/25 15:18 +0000 jrandom 1.14 README.txt myproj == ~/src/myproj M 07/25 15:18 +0000 jrandom 1.15 hello.c myproj == ~/src/myproj U 07/25 15:23 +0000 jrandom 1.1 goodbye.c myproj == ~/src/myproj U 07/25 15:23 +0000 jrandom 1.16 hello.c myproj == ~/src/myproj U 07/25 15:26 +0000 jrandom 1.1 goodbye.c myproj == ~/src/myproj G 07/25 15:26 +0000 jrandom 1.17 hello.c myproj == ~/src/myproj M 07/25 15:27 +0000 jrandom 1.18 hello.c myproj == ~/src/myproj C 07/25 15:30 +0000 jrandom 1.19 hello.c myproj == ~/src/myproj M 07/25 15:31 +0000 jrandom 1.20 hello.c myproj == ~/src/myproj M 07/25 16:29 +0000 jrandom 1.3 whatever.c myproj/a-subdir == ~/src/myproj paste$
¿No está claro?
Antes de examinar la salida, observe que la orden incluye dos opciones:
-e y -a. Cuando usted ejecuta histoy
, casi siempre le pasará opciones
para indicar que datos y en que formato los verá. En esto difiere de la
mayoria de las órdenes de CVS, que normalmente hacen cosas útiles sin
necesidad de opciones. En este ejemplo, los dos indicadores significan
respectivamente "todas las cosas" (del inglés everything), que muestra
todas las claves de eventos que han ocurrido, y "todo" (del inglés
all), por todos los usuarios.
Otro modo en que history
se diferencia de otros comandos es que, aunque
normalmente se invoca dentro de una copia de trabajo, no sólo está
restringida su salida a esa copia del projecto sino que también muestra
todo el historial de eventos de todos los proyectos del repositorio. La
copia de trabajo sólo indica a CVS desde que repositorio conseguir los datos
del historial. (En el ejemplo anterior, los únicos datos de historial de
ese repositorio son los del proyecto myproj
, por lo tanto eso es lo
que vemos.)
El formato general de salida es:
CÓDIGO FECHA_Y_HORA USUARIO [REVISION] [FICHERO] DIRECTORIO_DEL_REPOSITORIO NOMBRE_DEL_DIRECTORIO_DE_TRABAJO
Aunque la salida de esta orden fue diseñado para ser compacto y usado como
entrado por otros programas, CVS le da bastante control sobre su contenido.
Las opciones mostradas en la Tabla 6.2 controlan sobre que tipos de eventos
se informa.
Tabla 6.1 Significado del código de las letras. Letra Significado ====== ========================================================= O Obtener T Tag F Entrega final W Actualizar (no de un fichero de usuario, eliminación en las entradas del fichero) U Actualizar (fichero sobrescribe un fichero de usuario no modificado) G Actualizar (fichero fusionado exitosamente con un fichero modificado de usuario) C Actualizar (fichero fusionado, pero existen conflictos con fichero de usuario) M Entregar (de un fichero modificado) A Entregar (un fichero añadido) R Entregar (el borrado de un fichero) E Exportar
Tabla 6.2 Opciones de filtrado sobre tipo de evento. Opción Significado ========== ========================================================= -m MODULO Muestra eventos del historial que afecten a MODULO -c Muestra las entregas. -o Muestra las obtenciones. -T Muestra los tag. -x CODE(S) Muestra los eventos de tipo CODE (uno o más de OTFWUGCMARE). -e Muestra todos los eventos. Una ver seleccionados los tipos de eventos se puede filtrar más con las opciones de la Tabla 6.3.
Tabla 6.3 Opciones a filtrar por el usuario. Opción Significado ========== ========================================================= -a Muestra las acciones hechas por todos los usuarios -w Muestra sólo las acciones hechas dentro de la copia de trabajo. -l Muestra sólo la última vez que este usuario realizó la acción -u USUARIO Muestra los registros para USUARIO