2013-04-17 3 views
3

내가 필요로하는 것은 코드 내의 특정 표현의 발생에 대한 모든 최종 CVS 커밋 된 파일의 내용을 확인하고 커미터로보고하는 것입니다.CVS에서 마지막 날 커밋 된 파일의 내용을 얻는 방법?

이렇게하려면 파일의 내용을 가져와야하지만 다른 명백한 특성이있는 커밋 된 파일 목록 만 가져올 수 있습니다. 내가 사용되는 명령은 내가 명령을 수정할 수 있습니다, 그래서 나는 내가 원하는 것을 얻을 수

cvs history -a -c -D <today's date> > cvs_history.txt

어떤 방법이 있나요입니까? 또는 기록 출력 파일을 구문 분석하고 언급 된 모든 파일을 체크 아웃해야하므로 검색 할 수 있습니까? 가장 효율적인 방법은 무엇입니까?

NB. 나는 앤트 스크립트로 작성하고있다. (만약 일이 어쨌든 더 쉬워 진다면).

는 야쿱 감사

편집 : 나는 회사의 모든 커밋 (끊임없이 변화하는 사용자의 목록)를 위해 매일 밤을 할 필요가

.

CVS 명령에 대한 연구가 끝나면 history 목록을 가져와 목록의 각 파일에 대해 rdiff (코드 추가에만 관심이 있음)을 얻어야 할 것입니다. 그리고 rdiff을 호출하려면 개정판을 알아야합니다. 마지막 개정 번호는 history이고 그 이전의 버전은 rlog입니다. 분기 개정판도 고려해야하기 때문에 조금 어렵습니다. 이 모든 정규식을 사용하여 Perl 스크립트와 함께 붙어 있어야합니다 그리고 그것은 마침내 내가 필요한 출력으로 결합됩니다.

나는 그렇게 할 것이라고 생각하지만 커밋 수가 많으면 오래 걸릴 수 있습니다. 더 쉬울 수 있을까요?

+0

관련 표현을 검색하기 위해 커밋 후크를 사용할 수 있습니까? –

+0

그것도 좋을 것 같아요.하지만 먼저 클라이언트 PC에서해야만합니다. 왜냐하면 회사가 저에게 원격 저장소로 놀고있는 것을 보게 될 것이기 때문입니다. 그러나 보고서에서 좋은 결과를 얻으려면 불필요한 코드의 커밋을 방지하기 위해 후크를 사용해야합니다. – Kuba

답변

1

그래서, 내 질문에 대답, 내가 필요한 유일한 마지막 날의 헌신적 인 내용이 때, 내가 그랬어

cvs history -a -c -D $today

를 호출하고 출력을 저장하는 펄 스크립트를 만들 commit-log.txt 파일 (필요하지는 않지만 메모리를 절약하기 위해 방금했습니다). 그런 다음 commit-log.txt 파일을 처리하고 내 도메인에서 e 파일 만 선택합니다. 다음에 나는 전화

cvs rdiff -r $prevRev -r $revision -u $repoName/$file

$ prevRev 그냥 lastDigit ($ 개정)이다

- 나에게 DIFF 내용을 얻는다, 그래서 다음 (검색을 필요로하는 I 보고서 및 프로세스를에 추가 단지 그 1 원치 않는 표현 ...).

파일의 전체 내용을 원한다면 위의 명령에서 $ prevRev 대신 첫 번째 $ firstRevision (1.1 또는 1.0 일 수 있음)을 사용합니다.

보고서의 수정 번호 대신 지점의 이름을보고 싶습니다. 그래서 나는 위와 비슷한 방법으로 'rlog'를 사용하고 커밋 된 리비전 번호와 관련된 브랜치 이름을 추출합니다.

관심과 제안을 주셔서 감사합니다. o)

1

사용자 수가 제한된 경우 각 사용자에 대해 history 명령을 실행하고 출력을 결합 할 수 있습니다.

cvs history -u username .... 
+0

감사합니다. 문제는'history' 명령이 저에게 (사용자와 개정판을 포함하여) 커밋 된 파일의 목록 만 제공하고 그들의 내용은 제공하지 않는다는 것입니다. 아니면 어떻게 든 할 수 있을까요? – Kuba

+0

아니, 나는 그것을 할 수 없다고 생각한다, sory – Gerard

+0

그건 괜찮아. 나는 이미 그것을 분류했다. 제안 주셔서 감사합니다 :) – Kuba

관련 문제