Node:cvs2cl -- Genera ChangeLogs al estilo GNU, Next:cvslock -- Bloquea los repositorios para evitar la atomicidad, Previous:cvsutils -- Utilidades gen�ricas para usar con CVS, Up:Herramientas de terceros
Depende de: Perl
URL: http://www.red-bean.com/~kfogel/cvs2cl.shtml
cvs2cl.pl condensa y reformatea la salida del registro de cvs para crear un archivo ChangeLog al estilo GNU para su proyecto. Los ChangeLogs son documentos organizados cronol�gicamente en los que se muestra el historial de cambios de un proyecto con un formato dise�ado especialmente para su legibilidad (f�jese en los siguientes ejemplos).
El problema con la orden cvs log
es que presenta su salida
bas�ndose en cada archivo sin tener en cuenta que un mismo mensaje de
cambios, si aparece pr�cticamente al mismo tiempo en archivos
diferentes, implica que esas revisiones formaron parte de un �nico
"commit". Por esto, resulta desesperante ir leyendo la salida del
registro para hacerse una idea del estado en el que se encuentra el
desarrollo del proyecto. Realmente s�lo puede ver la historia de un
archivo al mismo tiempo.
En el ChangeLog producido por cvs2cl.pl los mensajes de cambios
id�nticos se unen de manera que si un �nico "commit" implica a un grupo
de archivos eso aparece como una �nica entrada. Por ejemplo:
floss$ cvs2cl.pl -r cvs log: Logging . cvs log: Logging a-subdir cvs log: Logging a-subdir/subsubdir cvs log: Logging b-subdir floss$ cat ChangeLog ... 1999-08-29 05:44 jrandom * README (1.6), hello.c (2.1), a-subdir/whatever.c (2.1), a-subdir/subsubdir/fish.c (2.1): Haciendo commit desde pcl-cvs 2.9, s�lo para ir abriendo boca. 1999-08-23 22:48 jrandom * README (1.5): [no log message] 1999-08-22 19:34 jrandom * README (1.4): trivial change ... floss$
La primera entrada muestra que se hizo "commit" de cuatro archivos al mismo tiempo con el mensaje de cambios "Haciendo commit desde pcl-cvs 2.9 s�lo para ir abriendo boca". (Se us� la opci�n -r para mostrar el n�mero de revisi�n de cada archivo asociado a ese mensaje de cambios.)
Al igual que el propio CVS, cvs2cl.pl toma el directorio actual como una variable impl�cita pero trabaja sobre archivos individuales si se le proporcionan variables de nombre de archivo. �stas son algunas de las opciones m�s usadas:
h
, --help
Muestra su uso (incluyendo una completa lista de opciones).
-r
, --revisions
Muestra los n�meros de revisi�n en la salida. Si se usa junto con -b las ramas se muestran como NOMBREDELARAMA.N siendo N la revisi�n de esa rama.
-t
, --tags
Muestra las etiquetas (nombres simb�licos) en las revisiones que las tengan.
-b
, --branches
Muestra el nombre de la rama para las revisiones de esa rama. (Vea tambi�n -r.)
-g OPTS
, --global-opts OPTS
Pasa OPTS como una variable global para cvs. Internamente cvs2cl.pl
invoca a cvs para hacerse con los datos de registro en crudo; es
entonces cuando OPTS se pasa al cvs en esa invocaci�n. Por ejemplo,
para obtener un comportamiento tranquilo y compresi�n, puede hacer esto:
floss$ cvs2cl.pl -g "-Q -z3"
-l OPTS
, --log-opts OPTS
Similar a -g, s�lo que OPTS se pasa como opciones de la orden en vez de
como opciones globales. Para generar un ChangeLog en el que aparezcan
�nicamente los "commits" que tuvieron lugar entre el 26 de Julio y el 15
de Agosto puede hacer esto:
floss$ cvs2cl.pl -l "'-d1999-07-26<1999-08-15'"
F�jese en el entrecomillado doble, necesario en Unix porque la shell que
invoca a cvs log (desde dentro de cvs2cl.pl) interpreta el <
como
un s�mbolo de redirecci�n en shell. Por esto, las comillas tienen que
colocarse como parte de la variable haci�ndose necesario envolverlo todo
con unas comillas adicionales.
-d
, --distributed
Coloca un ChangeLog individual en cada subdirectorio cubriendo s�lo los "commits" a ese subdirectorio (contrario a crear un ChangeLog que cubra el directorio desde el que se invoca cvs2cl.pl y todos sus subdirectorios).