Node:Historial -- Un resumen de la actividad del repositorio, Next:, Previous:Deshacerse de una copia de trabajo, Up:CVS avanzado



Historial - Un resumen de la actividad del repositorio

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