software - CVS: enumera todos los archivos modificados entre etiquetas(o fechas)
programas para archivos csv (7)
¿Hay alguna forma de enumerar todos los archivos que han cambiado entre dos etiquetas en CVS?
Cada vez que hacemos un lanzamiento aplicamos una etiqueta a todos los archivos en esa versión. Quiero encontrar todos los archivos que cambiaron entre lanzamientos.
También funcionaría si pudiera encontrar todos los archivos que han cambiado entre dos fechas.
La mejor herramienta que he encontrado para esto es un script de Perl llamado cvs2cl.pl . Esto puede generar una lista de cambios en varios formatos diferentes. Tiene muchas opciones diferentes, pero he usado las opciones de etiqueta a etiqueta como esta:
cvs2cl.pl --delta dev_release_1_2_3:dev_release_1_6_8
o
cvs2cl.pl --delta dev_release_1_2_3:HEAD
También hice comparaciones usando fechas con la misma herramienta.
Para obtener la lista de archivos entre dos fechas usando CVS:
cvs diff -N -c -D YYYY-MM-DD -D YYYY-MM-DD | grep "Index:" > diff.out
Más información sobre fechas aceptadas para la bandera -D: http://docs.freebsd.org/info/cvs/cvs.info.Common_options.html
Prefiero usar la opción rdiff
y -s
cvs rdiff -s -r RELEASE_1_0 -r RELEASE_1_1 module > diffs
rdiff
no requiere un sandbox; -s
le da un resumen de los cambios.
cvs log -d ">=DATE" -N -S -R > cvs.log
El método de DLira proporciona muchos detalles, incluidos todos los cambios.
Para obtener una lista de archivos, esto funciona:
cvs diff -N -c -r RELEASE_1_0 -r RELEASE_1_1 | grep "Index:" > diffs
Para obtener una lista de archivos que han cambiado entre una versión y otra utilizando los comandos cvs estándar:
cvs -q log -NSR -rV-1-0-69::V-1-0-70 2>/dev/null >log.txt
O, alternativamente, para obtener una lista de comentarios de compromiso simplemente suelte el -R
:
cvs -q log -NS -rV-1-0-69::V-1-0-70 2>/dev/null >log.txt
Donde reemplaza V-1-0-69
y V-1-0-70
con las revisiones que está comparando.
Supongo que este comando ayudaría:
cvs diff -N -c -r RELEASE_1_0 -r RELEASE_1_1 > diffs
donde RELEASE_1_0
y RELEASE_1_1
son los nombres de tus etiquetas.
Puede encontrar un poco más de información sobre el comando cvs diff aquí
además, debería ser bastante simple crear un script para hacer un informe más adaptable a sus necesidades, por ejemplo: número de archivos modificados, creados eliminados, etc. Por lo que sé, las herramientas de interfaz gráfica de usuario cvs más comunes (wincvs y tortugas) no proporcionan algo como esta fuera de la caja.
Espero que ayude ;)