CVSHistory - CVS repository 변경 내역을 손쉽게 조회하기 by 오리대마왕

변경관리의 일환으로, 프로젝트 참여자들이 CVS repository에 대한 활동을 감시할 필요가 있어 관련된 도구를 찾는 와중에, 딱 맞는 녀석이 있어 소개하고자 한다. 아래 내용의 CVS 언급부분은 CVSNT를 기준으로 기술하였기 때문에, 표준적인 CVS와 다른 부분이 있을 수도 있다.

CVSHistory는 CVS에서 제공하는 history 내역을 웹 브라우저 상에서 간편히 조회할 수 있도록 하는 도구이다. Python 으로 작성된, CGI script 이다. CVS 자체적으로 history 라는 명령을 제공하고 있긴 하지만, 아무래도 커맨트 라인 명령어이고 자주 사용하지도 않으니 매번 쓸때마다 다시 공부해야 할 것이다. 따라서 이러한 편리한 도구가 많은 도움이 될 것이다.

CVSWeb등 CVS 변동 내역에 대한 편리한 접근방법을 제공해 주는 도구들이 있지만, 대부분 개별 파일 단위로 구성되어 있어 전체적인 변동내역을 살펴보기에는 불편한 면이 있다. 그러나 CVSHistory는 전체 repository에 대한 활동 내역을 한번에 볼 수 있다. 아래 스크린샷이 모든 걸 설명해준다.

(출처는 CVSHistory)

주요 기능은 위 스크린샷에서 보는 게 전부이다. CVSWeb 등과 연동하여 동작할 수 있고, 그런 거 설정되어 있지 않다면 그냥 혼자 돌릴 수도 있다.

다음은 Window XP, CVSNT, Apache 환경에서 CVSHistory 설치에 대한 간략한 설명이다.
  1. CVSNT, Apache, Python을 잘 설치한다. 자세한 설명은 생략한다.

  2. CVSHistory를 다운받아 설치 위치에 압축을 푼다. 내가 설치한 버전은 2.2 이다.

  3. cvshistory.conf 를 열어 CVSROOT/history 파일 경로를 설정한다. 나머지 설정내용을 알아서 잘 수정한다.

  4. cvshistory.cgi를 수정한다. Python.exe 의 위치, cvshistory.conf의 위치를 수정한다.

  5. Apache의 httpd.conf를 수정한다. Apache를 통해서 보기 위해서는 일반적으로 alias를 정의하여 적절한 경로 (ex. /cvshistory )를 잡아주고, 해당 디렉토리에 대한 설정을 해 주어야 한다. 다음은 설정 일부이다.
    <IfModule alias_module>
          ~~~~~
        Alias /cvshistory C:/down/cvshistory-2.2.tar/cvshistory-2.2
    </IfModule>
    ~~~~
    <Directory "C:/down/cvshistory-2.2.tar/cvshistory-2.2">
        AllowOverride None
        Options +ExecCGI
        Order allow,deny
        Allow from all
    </Directory>

  6. 브라우저로 접근해서 제대로 동작하는 지 확인한다. 안되면 아파치의 error.log 를 참고하여 잘(!) 조정한다. 내 경우, CVSNT가 history를 제대로 만들어주지 않아서 문제가 되었다. 이 경우 CVSROOT 밑의 config 파일을 수정하여 history가 남도록 설정한 후, 직접 CVSROOT/history 라는 빈 파일을 만들어서 해결하였다.


자, 이제 도구도 갖춰졌으니 conflict 자주 내거나 멋대로 중요파일 commit 한 사람, 남의 파일 날려먹은 사람을 응징하러 갑시다!(응?)

덧글

  • 레인블루 2008/03/12 13:12 #

    Rails로 만들어진 Redmine이란 툴(이슈트래킹)을 쓰면 대부분의 기능이 제공되니까..(CVS뿐만 아니라 subversion, mercurial 등등) 그거 써도 좋아 !!
    (회사에서 쓰고있다오)
  • 제우스 2008/03/12 13:12 #

    subversion으로 건너오세요~ 아주아주 라인별로 편하게 볼수 있어요
    cvs2svn 이라는 툴도 있어서 마이그레이션도 도와줘요~
  • 오리대마왕 2008/03/12 13:28 #

    제우스//subversion이 대세이긴 하니 저 도구도 SVN 옮겨타면 필요는 없겠죠? ㅎㅎ
    저는 아직 subversion을 사용해 보질 않아서 CVS보다 구체적으로 뭐가 좋은 지를 모르겠고, 그래서 "CVS 그만쓰고 subversion으로 갈아타세요!" 라는 말들이 와닿질 않네요. 애시당초 아무것도 안쓰던 조직이면 걍 SVN으로 시작하면 될텐데, CVS 잘 쓰던 조직이라면 굳이 위험 무릅쓰고 옮겨탈 만한 이유가 있을까요? 함 local에다 깔고 돌려봐야 감이 올 것 같네요. 좋은 글 있으면 알려주세염~
    @근데 아직도 eclipse는 기본 버전통제 도구가 CVS네요. SVN 추가 될 때도 되지 않았나? 예전 글에서는 SVN 지원 plug-in이 많이 불안하다고 하던데...
    레인블루//redmine 재밌네요. 단순히 repository만 관리하기는 너무 큰 것 같지만, PMS 도입할 때 한번 고려해봄직하네요~
※ 로그인 사용자만 덧글을 남길 수 있습니다.