'pvcs'에 해당되는 글 1건

  1. PVCS to Subversion migration 2007/11/12

PVCS to Subversion migration

from etc 2007/11/12 15:26
부서에서 소스형상관리툴로 PVCS를 사용하고 있었다.
써본사람은 알겠지만 Subversion과 비교하면 도대체가 장점을 찾기 힘든 툴이다.
오래된 툴이라서 그러려니 하고 살아보려 했으나, 요상한 Archive 관리에 파일 삭제와 관련된 문제들,
그리고 결정적으로 매우 조악한 수준의 eclipse plugin은 내 인내력의 한계를 넘어버렸다.

개인적인 용도로 Subversion을 몇년동안 써왔던 터라 Subversion으로 옮겨가자고 건의도 해봤지만,
오픈소스 프로그램에 대한 근거없는 불신과 관리조직의 회사표준툴 강요 등의 이유로 묵살당했다.
결국 시스템 전체 소스들을 Subversion으로 이주시키는 것은 포기하고(50여개의 서브프로젝트들로 구성),
내가 관리하는 5개 서브프로젝트들만 PVCS에서 Subversion으로 옮겼다.

소스의 현재 상태만 옮겨간다면야 그리 복잡할 것도 없는 작업이지만, 3년 가까이 쌓여있는 변경 히스토리를 통채로 가지고 가야 하기 때문에 마이그레이션 작업은 필수적이었다.

구글링을 통해 PVCS -> Subversion 컨버전 툴을 2개 정도 찾을 수 있었다.

1. SVNImporter
SVNImporter는 Eclipse subversion plugin인 Subversive를 만드는 Polarion.org의 프로젝트로,
PVCS 뿐만아니라 CVS, VSS, ClearCase, MKS, StarTeam 등의 리파지토리로 부터 Subversion으로의
conversion을 지원한다. (jdk1.4 이상에서 실행)
SVNImporter는 PVCS에서 리비전 별로 파일들을 받아서, subversion dump file로 만든 후에
'svnadmin load' 명령을 사용하여 subversion 리파지토리에 로드하는 방법으로
리비전 히스토리를 컨버전한다.

2. pvcs2svn.pl
Thomas Wolkenstein이 만든 perl script이다.
이 스크립트는 PVCS에서 파일을 get 한 후에, subversion에 commit하는 것을 리비전 별로 반복적으로
수행하므로써 컨버전 작업을 수행한다.

속도면에서는 SVNImporter의 경우가 다소 빠른 것 같았으나, 한글이름의 파일들을 정상적으로 처리하지
못하는 문제가 있었다. 그리고 변경 comment의 한글 일부가 깨지는 문제가 있었다.
반면, pvcs2svn.pl 스크립트는 한글이름의 파일에는 문제가 없으나, SVNImporter와 마찬가지로
comment의 한글 일부가 깨지는 문제가 있었다.

컨버전 시간은 프로젝트의 파일 수, 파일 리비전의 수, 파일의 크기 등에 영향을 받을 수 있으니
단정적으로 말할 수는 없지만 Subversion으로 변환 후 리비전 번호가 1000, 파일 갯수가  7000여개 정도되는
프로젝트의 경우 컨버전에 10시간이 넘는 시간이 소요되었다. (pvcs2svn.pl로 작업)

마이그레이션에 소요됐던 시간과 수고는 Subversion으로 옮겨온 후에 얻을 수 있는 이점을 생각하면,
충분히 상쇄될만 하니 개인적으로는 만족스럽다. 다만 최근 회사에서 PVCS대신 Dimension으로
소스형상관리툴을 교체해나가고 있는데, 어떻게 버텨야 할지가 문제......
2007/11/12 15:26 2007/11/12 15:26