Appendix A. CVS 저장소(repository)의 이행
A.1.Subversion는 CVS의 역할을 이어받는 소프트웨어가 되는 것을 목표로 만들어 졌으므로, CVS에서 Subversion으로의 이행을 돕는 툴을 준비해 두는 것은 의미가 있다고 하겠습니다. Subversion 은 CVS 저장소(repository)를 Subversion 저장소(repository)로 바꿔주는 스크립트를 준비해 두고 있습니다. CVS에서 만들어진 이력을 모두 같이 가지고 새로운 세계로 들어갈 수 있습니다. A.1. 필요한 것그 툴은cvs2svn.py이고, Subversion 소스 트리중에 tools 서브 디렉토리에 있는 python 스크립트입니다. 이 프로그램을 실행하기 위해 필요한 것이 몇 개 있습니다:
A.2. Running cvs2svn.pyCVS는 파일마다 커밋을 해주는 구조를 가지고 있지 않기 때문에, cvs2svn.py 는 리비전 버전을 공통으로 만들어주는 어려운 작업을 하지 않으면 안됩니다. 이 작업은 RCS 파일을 조사해서 각 파일의 리비전을 같은 로그 메세지를 가진 것으로서 찾는 것에 의해 실행합니다. 두 RCS 리버전이 같은 로그 메세지 를 갖고 있어, 거의 같은 시각에 위탁되어 있는 것을 (즉, 서로 몇 분 이내의 차이 밖에 없으면) cvs2svn.py 는 그것들을 공통의 수정"그룹"이라고 생각해 하나의 리버전으로서 새로운 Subversion 저장소(repository)에 위탁합니다. 전의 설명은 조금 간단하게 해 버렸습니다만, 실제로는 그것보다 좀 더 여러가지 기록을 취합니다. 실제 cvs2svn.py
는 그 작업을 여러 "단계"로 나누어 실행하여 디스크상에
커다란 임시 데이터를 만듭니다. 만약 스크립트를 중단하는 경우는
다음에 다시 실행할 경우에 스크립트의 간단한 실행:
변환은 CVS 저장소 크기에 따라 몇 분에서 몇 시간까지 걸릴 수 있습니다. Subversion 자신의 CVS 저장소(repository)에 실행했을 경우 (자기 자신으로 관리할 수 있게 되기 전의 Subversion의 역사의 최초의 일년은 CVS로 관리하고 있었습니다) 대개 30분 정도 걸려 Subversion 저장소(repository)에는 태우는 3000의 리버전이 위탁되었습니다. |
Your mode of life will be changed for the better because of good news soon. |