문제
을 보냈다는 하루의 대부분을 만드는 무엇인가 기본적으로 일부 서비스의 변경 codebase 의 우리의 프로젝트 중 하나(모두 교체 System.out.println()
전화 log4j).
저는 호기심이 얼마나 많은 라인의 코드가 업데이트와 이의 설정을 변경합니다.
어쨌든 가 cvs diff
또 다른 명령에 정확하게 계산하기 위해서는 얼마나 많은 라인이 변경되었나요?
해봤
cvs diff -b -B -R
의 모든 변경에서 작업 디렉터리(및 재귀적으로 하위 디렉터리),하지만 각각의 파일이 변경되었다 그것 또한 인쇄/파일의 버전 정보를 만드는 단지를 계산 라인의 출력에 쓸모가 없다.
어떤 아이디어가?
해결책
필터를 추가 라인에서 차이 출력하고 다음 계산 라인입니다.
예를 들어,grep 만 시작하는 줄은 < 또>
cvs diff -b -B -R | egrep '^<|>' | wc -l
다른 팁
이 diffstat 유틸리티입니다 좋은 도구에 대한 몇 가지 간단한 메트릭스에서 출력의 cvs,svn 또는 다른 diff.
CVS Diff의 출력을 DiffStat에 단순히 파이프로 파이프 할 수 있습니다.
모든 인스턴스를 다음과 같은 것으로 변경했는지 확인하십시오.
find . | egrep -v -e '(CVS|<other patterns you don't want>)' | \
xargs egrep -e 'System\.out\.println[(][)]' | wc -l
그것은 당신에게 0을 줄 것입니다.
그런 다음 두 번째 egrep에서 Regex를 'log4j'로 교체하려면 WC -L이 변경된 줄의 수를 반환해야합니다.
HTH.
건배,
롭
제휴하지 않습니다 StackOverflow