CVS: Listar todos los archivos cambiados entre etiquetas (o fechas)
-
02-07-2019 - |
Pregunta
¿Hay alguna forma de enumerar todos los archivos que han cambiado entre dos etiquetas en CVS?
Cada vez que hacemos una versión, aplicamos una etiqueta a todos los archivos de esa versión. Quiero encontrar todos los archivos que cambiaron entre versiones.
También funcionaría si pudiera encontrar todos los archivos que habían cambiado entre dos fechas.
Solución
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 que el informe sea más adecuado para sus necesidades, por ejemplo: número de archivos modificados, creados eliminados, etc. Hasta donde yo sé, las herramientas de GUI de cvs más comunes (wincvs y tortuga) hacen no proporcionar algo como esto fuera de la caja.
Espero que ayude ;)
Otros consejos
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 ofrece un resumen de los cambios.
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 las fechas aceptadas para el indicador -D: http: / /docs.freebsd.org/info/cvs/cvs.info.Common_options.html
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 confirmación, 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.
cvs log -d ">=DATE" -N -S -R > cvs.log
El método de DLira ofrece 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
La mejor herramienta que he encontrado para esto es un script en 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.