Como posso obter um resumo dos meus cvs conflitos ao fazer uma atualização de cvs na linha de comando?

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

Pergunta

Existe uma maneira fácil de obter um resumo conflito depois de executar um cvs update?

Eu trabalho em um projeto grande e depois de fazer algum trabalho que eu preciso fazer uma atualização. A lista de mudanças que vem de volta a partir do comando cvs update é várias páginas e eu gostaria de ver apenas a lista de conflitos (começa com 'C') repetidos no final da saída do comando cvs update.

As necessidades de soluções de trabalhar a partir da linha de comando.

Se a minha saída normal é:

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

Eu quero a minha nova saída seja:

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

Eu quero que este seja um único comando (possivelmente um pequeno script ou alias) que gera a saída cvs normal, como acontece seguido por um resumo dos conflitos.

Foi útil?

Solução

Dada a especificação, parece que você precisa de uma pequena adaptação da solução de Martin Iorque (porque isso só mostra os conflitos e não a informação de log normal). Algo parecido com isto - o que pode ser chamado de '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

Os comandos trap garantir que o arquivo de log não é deixado ao redor. Ele pega os sinais normais -. HUP, INT, saia, tubulação e prazo (respectivamente) e 0 armadilhas qualquer outra saída do shell

Outras dicas

Eu não tenho cvs acessível o que é o formato exato da saída do cvs update

Eu me lembro C
Se assim você poderia usar:

cvs update | log T | grep "^ C"

O resultado completo do cvs é salvo no registro para uso em outro ponto. Então nós grep para todas as linhas início com 'C'

Espero que ajude.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top