문제
할 때 cvs update
, 당신은 예를 들어 저장소 상태에 대한 좋은 요약을 얻을 수 있습니다.
M src/file1.txt
M src/file2.txt
C src/file3.txt
A src/file4.txt
? src/file5.txt
실제로 업데이트하지 않고 이것을 얻는 방법이 있습니까? 나는 있다는 것을 알고있다 cvs status
, 그러나 이것은 장황하는 방법입니다.
===================================================================
File: file6.txt Status: Up-to-date
Working revision: 1.2
Repository revision: 1.2 /var/cvs/cvsroot/file6.txt,v
Sticky Tag: (none)
Sticky Date: (none)
Sticky Options: (none)
물론 후자에서 전자로 변환하기 위해 대본을 만들 수는 있지만 CVS가 분명히 전자를 생산할 수 있기 때문에 시간 낭비 인 것 같습니다.
해결책
파일을 실제로 업데이트하지 않고 -n 플래그를 사용하여 업데이트 출력을 얻을 수 있습니다. 서버 메시지를 억제하기 위해 -Q (조용한)를 추가 할 수도 있습니다.
cvs -q -n update
다른 팁
@jmcnamara : 좋은 팁!
그리고이 모든 시간에 나는이 bash 스크립트를 사용하고 있습니다.
cvs -q status "$@" | grep '^[?F]' | grep -v 'Up-to-date'
누군가에게 유용 할 수있는 별명이 있습니다.
alias cvsstatus_command='cvs -q status | grep "^[?F]" | grep -v "Up-to-date" | \
grep -v "\.so" | grep -v "\.[c]*project"'
alias cvsstatus_color='nawk '"'"'BEGIN \
{ \
arr["Needs Merge"] = "0;31"; \
arr["Needs Patch"] = "1;31"; \
arr["conflicts"] = "1;33"; \
arr["Locally Modified"] = "0;33"; \
arr["Locally Added"] = "0;32" \
} \
{ \
l = $0; \
for (pattern in arr) { \
gsub(".*" pattern ".*", "\033[" arr[pattern] "m&\033[0m", l); \
} \
print l; \
}'"'"
alias cvsstatus='cvsstatus_command | cvsstatus_color'
이것은 파일 이름과 해당 상태 만 표시되고 모든 최신 파일을 무시하고 모든 Eclipse 프로젝트 파일 및 공유 객체를 제거하며 또한 상태에 따라 다른 색상으로 선을 인쇄합니다. (예를 들어, 로컬로 수정 된 주황색, 파일의 경우 빨간색, 병합이 필요합니다. 로컬 추가의 경우 녹색 등)
CVSNT를 사용하는 경우 그냥 할 수도 있습니다 cvs status -q
또한 일반 상태 명령 (파일 당 한 줄만)보다 많은 간단한 출력을 생성합니다. 더 최근의 버전을 사용하면 할 수 있습니다 cvs status -qq
최신 파일을 건너 뛸 수 있습니다.
제휴하지 않습니다 StackOverflow