¿Alguien conoce las opciones de la línea de comando CVS para obtener los detalles del último registro?

StackOverflow https://stackoverflow.com/questions/86515

Pregunta

Estoy usando CVS en Windows (con la interfaz WinCVS) y me gustaría agregar detalles del último registro al correo electrónico de nuestro proceso de compilación automatizado, cada vez que falla una compilación, para que sea más fácil de solucionar.

Necesito saber los archivos que han cambiado, el usuario que los cambió y el comentario.

He estado tratando de resolver las opciones de la línea de comando, pero parece que nunca obtengo resultados precisos (ya sea demasiados resultados en lugar de solo un registro, o detalles de algún registro aleatorio de hace dos semanas)

¿Fue útil?

Solución

Guau.

Había olvidado lo difícil que es hacer esto.Lo que había hecho antes era un proceso de dos etapas.

En primer lugar, correr

cvs history -c -a -D "7 days ago" |
    gawk '{ print "$1 == \"" $6 "\" && $2 == \"" $8 "/" $7 "\" { print \"" $2 " " $3 " " $6 " " $5 " " $8 "/" $7 "\"; next }" }' > /tmp/$$.awk

para recopilar información sobre todos los registros en los 7 días anteriores y generar un script que se usaría para crear una parte del correo electrónico que se envió.

Luego rastreé el archivo CVS/Entries en el directorio que contenía los archivos rotos para obtener más información.

Unir a los dos me permitió identificar al culpable y enviarle un correo electrónico notificándole que habían roto la construcción.

Lamento que esta respuesta no sea tan completa como esperaba.

Otros consejos

CVS no agrupa conjuntos de cambios como lo hacen otros sistemas de control de versiones;Cada archivo tiene su propio número de versión e historial independientes.Esta es una de las deficiencias del CVS que impulsa a las personas a cambiar a un VC más nuevo.

Dicho esto, hay formas de lograr su objetivo.Lo más fácil podría ser agregar un enlace posterior a la confirmación para enviar correos electrónicos o iniciar sesión en un archivo.Entonces, al menos, puede agrupar un conjunto de confirmaciones mirando la hora en que se envían los correos electrónicos y quién realizó el cambio.

CVS no proporciona esta capacidad.Sin embargo, puede obtenerlo comprando una licencia para ojo de pez o posiblemente usando CVSTrac (nota:No he probado CVS Trac).

O podría migrar a SVN, que proporciona esta capacidad mediante confirmaciones atómicas.Puede registrar un grupo de archivos y hacer que cuente como una única confirmación.En CVS, cada archivo es una confirmación separada sin importar lo que hagas.

Hicimos esto a través de un script en Perl que descarga el registro de cambios y puedes obtener una versión gratuita de Perl para Windows en el segundo enlace.

Guión Cvs2Cl

Perl activo

Utilizo loginfo en CVSROOT y escribo esa información en un archivo

http://ximbiot.com/cvs/manual/cvs-1.11.23/cvs_18.html#SEC186

¿"cvs History -a -l" te acercará?Muestra para todos los usuarios el último evento por proyecto...

Soportes CVSNT confirmar ID que puede usar en lugar de etiquetas en los comandos de registro, pago o actualización.Cada conjunto de archivos confirmados (las confirmaciones son atómicas en CVSNT) recibe su propia identificación única.Solo tiene que determinar primero el ID de confirmación del último archivo registrado mediante el registro cvs (puede restringir la salida mediante -d"Hace 1 hora" o similar) y luego consultar qué otros archivos tienen ese ID.

Eclipse tiene ChangeSets integrados.Puede explorar los últimos cambios (al menos los cambios entrantes, también conocidos como actualizaciones) mediante confirmación.Para ello, agrupa las confirmaciones por autor, mensaje de confirmación y marcas de tiempo similares.

Esto también funciona para "Comparar con/Otra sucursal o versión", donde puede elegir sucursales, etiquetas y fechas.Busque en los iconos de la vista de sincronización un menú emergente con "Conjuntos de cambios" y compruébelo usted mismo.

Editar:Esto requeriría cambiar a Eclipse al menos como visor, pero dependiendo de la frecuencia que necesites comparar y agrupar, puede que no sea tan malo.Si no desea utilizar más, utilice Eclipse solo para CVS.Debería ser posible incluso obtener un cliente cvs gráfico de tamaño decente a través del rcp con todos los complementos, pero esto definitivamente estaría fuera de alcance...

¿No es este un problema resuelto?Creo que cualquiera de las varias herramientas en el Matriz de CI que admita CVS y notificaciones por correo electrónico podría hacer esto por usted.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top