Pergunta

Eu passei a maior parte do dia fazendo o que são, basicamente, algumas mudanças de limpeza à base de código de um de nossos projetos (que substitui todas as chamadas System.out.println() com log4j).

Eu sou do tipo curioso quantas linhas de código que eu tenho atualizado com este conjunto de alterações.

Existe uma maneira com cvs diff ou outro comando para obter uma contagem exata de quantas linhas foram alteradas?

Eu tentei

cvs diff -b -B -R

para obter todas as mudanças no diretório de trabalho (e recursivamente os subdiretórios), mas para cada arquivo alterado também imprime informações de arquivo / versão, que faz apenas contando as linhas de saída inútil.

Todas as idéias?

Foi útil?

Solução

Filtrar as linhas extras a partir da saída de diff e depois contar as linhas.

Por exemplo, apenas as linhas grep começando com

cvs diff -b -B -R | egrep '^<|>' | wc -l

Outras dicas

O diffstat utilitário é uma boa ferramenta para obter algumas métricas simples da saída do cvs, svn ou outros diffs.

Você pode simplesmente saída de tubo de cvs diff para diffstat.

Que tal verificar se você mudou todas as instâncias com algo como:

find . | egrep -v -e '(CVS|<other patterns you don't want>)' | \
    xargs egrep -e 'System\.out\.println[(][)]' | wc -l

que deve dar-lhe zero.

Depois de substituir a regex no segundo egrep com 'log4j' deve ter wc -l retornar o número de linhas que você mudou.

HTH.

aplausos,

Rob

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