2009-06-30 5 views
14

일반적으로 버그에 대한 픽스/패치에는 여러 파일의 변경 내용이 포함되어 있으며 모든 파일을 한 번에 커밋합니다.단일 CVS 커밋에 체크인 된 모든 파일 나열.

SVN에서 각 커밋 (여러 파일이 포함될 수 있음)에서 전체 저장소의 개정 번호가 하나씩 증가합니다. 따라서 우리는 하나의 커밋에 들어간 여러 파일을 모두 쉽게 연결할 수 있습니다.

CVS에서 같은 경우의 어려움은 모든 파일의 개정 번호를 개별적으로 증가시키는 것입니다.

file1.c에서이 commit..1.5.10.2의 일환으로 할당 // 개정
가와 file2.c // 수정이 commit..1.41.10.1의 일환으로 할당 : 커밋은 다음 파일을 포함하는 경우의가 있다고 가정 해 봅시다

이며이 커밋에 대한 설명은 "First Bug Fix"입니다.

이제이 커밋의 일부로 모든 파일을 체크인하는 유일한 방법은 모든 CVS 로그에서 "First Bug Fix"를 검색하고 위에 언급 한 두 개의 파일 수정본 만 반환하면됩니다.

커밋의 일부로 주어진 코멘트를 중계하지 않고 단일 커밋으로 체크인 한 모든 파일을 추적하는 CVS에 더 좋은 방법이 있다면 의견을 공유하십시오.

+1

은 확실, CVS는 '식별자를 커밋'제작 보았다. 그리고 아무 것도 그들을 위해 사용하는 방법도 없습니다. –

답변

11

나는 CVSps이 (가) 당신이 찾고있는 것을 할 수도 있다고 생각합니다.

"CVSps는 CVS 저장소에서 'patchset'정보를 생성하는 프로그램입니다.이 경우 패치 세트는 파일 모음에 대한 변경 집합으로서 정의되며 동시에 모두 커밋됩니다 (단일 'cvs commit'명령)이 정보는 cvs 프로젝트의 진화에 대한 큰 그림을 보는 데 중요합니다. cvs가 개정 정보를 추적하는 동안 변경 사항이 저장소에 '원자 적으로'무엇을했는지 확인하는 것이 종종 어렵습니다. "

이 cvsps는 cvs 클라이언트를 사용합니다. rlog 명령 (1.1.1)을 지원하는 cvs의 적절한 버전을 가지고 있는지 확인하십시오.

+0

흥미 롭습니다. 나는 CVSps가 작동하는 것이 무엇인지 궁금합니다. 타임 스탬프가 다를 수 있기 때문에 cvsps가 다른 디렉토리에서 작동하는지 궁금합니다. 물론 CVSzilla는 CVSweb과 Bugzilla와 매우 훌륭한 환경을 제공하기 위해 많은 훌륭한 기능을 추가합니다. –

+0

표준 우분투 저장소를 통해 cvsps를 사용할 수 있습니다. 이 대답을 표시하면 cvsp에 대해 가르쳐 주셔서 감사합니다. :) –

+0

나는 그것의 존재를 어느 정도 알고있다. 그래서 어떻게 작동하는지 많이 알지 못한다. –

2

CVS는 "트랜잭션"에 대한 고유 한 지원을 가지고 있지 않습니다.

이렇게하려면 추가 접착제가 필요합니다. 다행히도, 이것은 모두 당신을 위해 이루어졌으며 "cvszilla"라고 불리는 매우 훌륭한 확장 기능으로 이용할 수 있습니다.

홈페이지는 여기에 있습니다 :

http://www.nyetwork.org/wiki/CVSZilla

이것은 또한 웹 기반의 GUI를 통해 CVS 모듈을 통해 검색 할 수있는 좋은 방법입니다 CVSweb에에 묶는다.

0

OK, 방금 cvsps를 설치하고 최상위 수준에서 실행했습니다. 다음은 출력 예제입니다 ... 이것은 내 모듈에있는 수백 개의 패치 세트 중 하나입니다. 실제로 이것은 다른 디렉토리 트리에서 작동합니다.

--------------------- 
PatchSet 221   
Date: 2009/04/22 22:09:37 
Author: jlove-ext   
Branch: HEAD    
Tag: LCA_v1_0_0_0_v6  
Log:      
Bug: 45562    
Check the length of strings in messages. Namely: 

    * Logical server IDs cannot be more than 18 characters (forcing a 
    TCSE protocol requirement).          
    * Overall 'sid' (filter) search string length cannot be more than 
    500 (this is actually more than the technical maximum messages are 
    allowed, but is close).           

Alarm messages and are now not going to crash either as the alarm text 
is shortened if necessary by the LCA.         

Members: 
     catalogue/extractCmnAlarms.pl:1.2->1.3 
     programs/ldapControlAgent/LcaCommon.h:1.18->1.19 
     programs/ldapControlAgent/LcaUtils.cc:1.20->1.21 
     programs/ldapControlAgent/LcaUtils.h:1.6->1.7  
     programs/ldapControlAgent/LdapSession.cc:1.61->1.62 
     tests/cts-45562.txt:INITIAL->1.1 

이렇게 실제로 수행 할 수 있습니다. 좋은 사람, Joakim. 그러나 언급 한 바와 같이 CVSzilla는 이보다 훨씬 더 많은 작업을 수행합니다.

  • 웹 기반 CVS 저장소 (CVSweb를 통해).
  • 웹 브라우저 트랜잭션.
  • 모듈간에 트랜잭션을 지원합니다.
  • 'cvs -j'를 사용하여 CVS 명령을 생성하여 패치 세트를 다른 분기에 병합합니다.
  • bugzilla와 통합되었습니다 (트랜잭션은 버그에 대해 자동으로 등록됩니다).

원하는 경우 패치 세트 정보 만 있으면 cvsps로 이동하십시오. 오랜 기간 동안 큰 프로젝트에서 CVS를 사용하고자하고 버그 추적을 위해 bugzilla를 사용할 생각이라면 CVSzilla를 살펴볼 것을 제안합니다.

1

아마도 ANT CvsChangeLog 작업이 다른 선택 일 수 있습니다. http://ant.apache.org/manual/Tasks/changelog.html을 참조하십시오. 체크인 메시지의 날짜와 시간을 제공합니다. XSLT로 멋진 보고서를 만들 수 있습니다 - ANT 매뉴얼 페이지 맨 아래에있는 예제를보십시오.

나는 대답이 늦었다는 것을 알고 있지만 다른 사용자가 ANT 통합을 (검색 한) 감사하게 생각하는 것처럼 보입니다.

0

이 유용 할 수있다 :이이 없음 표준 확장 파일 정도 인 경우 http://code.google.com/a/eclipselabs.org/p/changelog/

+0

업데이트 사이트가 타임 아웃을 던졌습니다 – Julien

+0

다시 시도하십시오. 여전히 작동하지 않으면 변경 로그 프로젝트 멤버를 연결하십시오. –

관련 문제