문제

실행 후 갈등 요약을 얻는 쉬운 방법이 있습니까? cvs update?

나는 큰 프로젝트를 진행하고 일을 한 후에는 업데이트를해야합니다. CVS 업데이트 명령에서 돌아 오는 변경 목록은 몇 페이지 길이이며 CVS 업데이트 명령 출력 끝에서 반복되는 충돌 목록 ( 'C'로 시작) 만보고 싶습니다.

솔루션은 명령 줄에서 작동해야합니다.

내 정상 출력 인 경우 :

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

새 출력을 원합니다.

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

나는 이것이 일반적인 CVS 출력을 출력 한 다음 충돌 요약이 뒤 따르는 단일 명령 (아마도 짧은 스크립트 또는 별칭)이되기를 원합니다.

도움이 되었습니까?

해결책

사양을 감안할 때 Martin York의 솔루션에 대한 사소한 적응이 필요합니다 (일반 로그 정보가 아니라 충돌 만 보여주기 때문입니다). 이와 같은 것 - '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

트랩 명령은 로그 파일이 남아 있지 않도록합니다. HUP, int, 종료, 파이프 및 용어 (각각) (각각)와 0은 쉘에서 다른 출구를 트랩합니다.

다른 팁

CVS가 없습니다. CVS 업데이트의 정확한 형식은 무엇입니까?

나는 기억하는 것 같다 cu003Cfilename>
그렇다면 사용할 수 있습니다.

CVS 업데이트 | 티 로그 | grep "^c"

CVS의 전체 출력은 다른 지점에서 사용하기 위해 로그에 저장됩니다. 그런 다음 우리는 모든 줄에 대해 grep합니다 시작 'C'와 함께

도움이되기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top