¿Cómo puedo obtener un resumen de mis conflictos de cvs cuando realizo una actualización de cvs en la línea de comando?

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

Pregunta

¿Existe una manera fácil de obtener un resumen de conflictos después de ejecutar un cvs update?

Trabajo en un proyecto grande y después de trabajar un poco necesito hacer una actualización.La lista de cambios provenientes del comando cvs update tiene varias páginas y me gustaría ver solo la lista de conflictos (que comienza con 'C') repetida al final del resultado del comando cvs update.

La solución debe funcionar desde la línea de comando.

Si mi salida normal es:

M src/file1.txt
M src/file2.txt
cvs server: conflicts found ...
C src/file3.txt
M src/file4.txt
M src/file5.txt

Quiero que mi nueva salida sea:

M src/file1.txt
M src/file2.txt
cvs server: conflicts found ...
C src/file3.txt
M src/file4.txt
M src/file5.txt

Conflict Summary:
C src/file3.txt

Quiero que este sea un comando único (posiblemente un script corto o alias) que genere la salida cvs normal a medida que sucede, seguida de un resumen de los conflictos.

¿Fue útil?

Solución

Dada la especificación, parece que necesita una adaptación menor de la solución de Martin York (porque solo muestra los conflictos y no la información de registro normal).Algo como esto, que podría llamarse 'cvsupd':

tmp=${TMPDIR:-/tmp}/cvsupd.$$
trap "rm -f $tmp; exit 1" 0 1 2 3 13 15
cvs update "$@" | tee $tmp
if grep -s '^C' $tmp
then
    echo
    echo Conflict Summary:
    grep '^C' $tmp
fi
rm -f $tmp
trap 0
exit 0

Los comandos trap garantizan que el archivo de registro no quede olvidado.Capta las señales normales: HUP, INT, QUIT, PIPE y TERM (respectivamente) y 0 atrapa cualquier otra salida del shell.

Otros consejos

No tengo cvs a mano ¿cuál es el formato exacto de la salida de cvs update?

Creo recordar C <nombre de archivo>
Si es así podrías usar:

Actualización de CVS | TEE LOG | Grep "^C"

La salida completa de cvs se guarda en el registro para usarla en otro momento.Luego buscamos todas las líneas. comienzo con 'C'

Espero que ayude.

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