· 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
You have had a long-term stimulation relative to business.


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.0021 sec