· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Subversion Book/CVS Repository Migration

CVS 저장소(repository)의 이행

Appendix A. CVS 저장소(repository)의 이행

Table of Contents
A.1.
A.1. 필요한 것
A.2. Running cvs2svn.py

A.1.

Subversion는 CVS의 역할을 이어받는 소프트웨어가 되는 것을 목표로 만들어 졌으므로, CVS에서 Subversion으로의 이행을 돕는 툴을 준비해 두는 것은 의미가 있다고 하겠습니다. Subversion 은 CVS 저장소(repository)를 Subversion 저장소(repository)로 바꿔주는 스크립트를 준비해 두고 있습니다. CVS에서 만들어진 이력을 모두 같이 가지고 새로운 세계로 들어갈 수 있습니다.


A.1. 필요한 것

그 툴은cvs2svn.py이고, Subversion 소스 트리중에 tools 서브 디렉토리에 있는 python 스크립트입니다. 이 프로그램을 실행하기 위해 필요한 것이 몇 개 있습니다:

python 2.0

python 2.0 이후 버전이 설치되어 있는지를 확인해 주세요. 파이썬 최신 버전은 http://www.python.org/ 에서 얻을 수 있습니다.

rcsparse.py

이것은 RCS 파일을 해석하기 위한 python 모듈로 ViewCVS 프로젝트의 일부입니다. 이것은 CVS 저장소(repository)를 읽기 위해서 필요합니다. 편이를 위해서 이 카피가 cvs2svn.py 가 있는 디렉토리에 준비되어 있지만, 최신 버전을 ViewCVS 프로젝트에서 받아와도 됩니다. http://viewcvs.sf.net/. . 이 모듈을 python를 찾아낼 수 있는 장소에 옮겨놓아만 주세요. 즉 /usr/local/lib/python2. 2/ 와 같은 디렉토리를 말합니다.


A.2. Running cvs2svn.py

CVS는 파일마다 커밋을 해주는 구조를 가지고 있지 않기 때문에, cvs2svn.py 는 리비전 버전을 공통으로 만들어주는 어려운 작업을 하지 않으면 안됩니다. 이 작업은 RCS 파일을 조사해서 각 파일의 리비전을 같은 로그 메세지를 가진 것으로서 찾는 것에 의해 실행합니다. 두 RCS 리버전이 같은 로그 메세지 를 갖고 있어, 거의 같은 시각에 위탁되어 있는 것을 (즉, 서로 몇 분 이내의 차이 밖에 없으면) cvs2svn.py 는 그것들을 공통의 수정"그룹"이라고 생각해 하나의 리버전으로서 새로운 Subversion 저장소(repository)에 위탁합니다.

전의 설명은 조금 간단하게 해 버렸습니다만, 실제로는 그것보다 좀 더 여러가지 기록을 취합니다. 실제 cvs2svn.py 는 그 작업을 여러 "단계"로 나누어 실행하여 디스크상에 커다란 임시 데이터를 만듭니다. 만약 스크립트를 중단하는 경우는 다음에 다시 실행할 경우에 -p 옵션을 붙여 어디에서 재실행하는지를 나타냅니다.

스크립트의 간단한 실행:

$ svnadmin create /new/svn/repos
$ cvs2svn.py -s /new/svn/repos /cvs/repos

    

변환은 CVS 저장소 크기에 따라 몇 분에서 몇 시간까지 걸릴 수 있습니다. Subversion 자신의 CVS 저장소(repository)에 실행했을 경우 (자기 자신으로 관리할 수 있게 되기 전의 Subversion의 역사의 최초의 일년은 CVS로 관리하고 있었습니다) 대개 30분 정도 걸려 Subversion 저장소(repository)에는 태우는 3000의 리버전이 위탁되었습니다.


ID
Password
Join
Your mode of life will be changed for the better because of good news soon.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2005-04-04 00:59:56
Processing time 0.0022 sec