CVS 로 관리하는 프로젝트를 SVN으로 변경하기

출처 : http://miren.info/bbs/viewtopic.php?p=1225#1225

  1. 설치
    – 윈도우즈 환경에서는 간단하게 pythonwin setup.py install 하면 된다.
    – 이 때 설치되는 내용은 다음과 같다.

    코드:
    Python\Lib\site-packages\cvs2svn_rcsparse 만든 후 복사 및 만들어지는 것
    – common.py, compat.py, debug.py, default.py, texttools.py, __init__.py
    – common.pyc, compat.pyc, debug.pyc, default.pyc, texttools.pyc, __init__.pycPython\Scripts에 복사되는 것
    – cvs2svn


    – cvs2svn_rcsparse 경로를 참조할 수 있으면 굳이 설치하지 않아도 된다. (아래 내용과 같이 인코딩 변환을 해야 한다면 설치하는 게 낫겠다.)

  2. CVS 저장소 내용을 SVN으로 변환하기
    1. 전제 조건
      – Python을 명령 프롬프트에서 실행할 수 있도록 path 설정을 해야 하므로 다음 정보를 설정했다.

      코드:
      C:\PROGRA~1\Python\Lib\site-packages\win32
      C:\PROGRA~1\Python\Lib\site-packages\win32\lib
      C:\PROGRA~1\Python\Lib\site-packages\Pythonwin


      – GNU sort를 사용하므로 http://unxutils.sourceforge.net/ 에서 win32용을 받고 압축을 풀어준 다음 마찬가지로 실행파일이 있는 wbin 디렉터리를 path에 추가한다. 또는 sort.exe를 cvs2svn과 함께 둔다.
      – cvs2svn을 바로 실행할 수 없었으므로 cvs2svn.py로 이름을 바꾼다.

       

    2. 변환하기
      – 명령 프롬프트에서 Python\Scripts 로 이동해 실행한다.
      – 인자부분에는 [-s svn-repos-path|–dump-only] cvs-repos-path 와 같이 사용
      – RCS의 co를 사용하지 않고 CVS를 사용하려면 –use-cvs 옵션을 준다.
      – 기본적으로는 버클리 DB를 사용해 저장소를 만들므로 저장소를 fsfs 타입으로 사용하려면 저장소를 먼저 만든 후에 변환을 해야 한다.
      – 정리하면 다음과 같다. 만들면 trunk, branches, tags를 자동으로 만들어 소스를 알아서 넣어준다.

      코드:
      cvs2svn.py –use-cvs –existing-svnrepos -s x:\svnrepo\prj_a x:\cvsrepo\prj_a


      – cvs의 모듈 위치를 지정할 때는 CVSROOT와 함께 있는 실제 소스 위치를 지정한다. (저장소에 접속할 때 사용하는 위치가 아니다.)

     

  3. 주의할 점
    – CVS에서 한글을 사용했다면 인코딩 문제로 SVN으로 변환하면 한글이 모두 깨어진다. 이는 기본적으로 CVS 로그 정보를 ASCII로 간주하기 때문인데 어쨌거나 로그 정보를 볼 수 없어 매우 치명적이다. 게다가 한글 이름의 파일도 변환하지 못 한다.
    – 이를 해결하기 위해서는 –encoding 옵션을 사용한다. 그러므로 이 때는 다음과 같이 한다.

    코드:
    cvs2svn.py –use-cvs –existing-svnrepos –encoding=mbcs -s x:\svnrepo\prj_a x:\cvsrepo\prj_a

     

 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다