명령 줄에서 CVS 업데이트를 할 때 CVS 충돌을 요약하는 방법은 무엇입니까?
-
02-07-2019 - |
문제
실행 후 갈등 요약을 얻는 쉬운 방법이 있습니까? 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'와 함께
도움이되기를 바랍니다.
제휴하지 않습니다 StackOverflow