SVN을 히스토리와 함께 Git으로 전환하기

2019, Aug 13    



git svn 을 통해서 svn을 git 으로 전한하기

(git svn 은 git으로 전환하기 위해서 쓰는 기능이라기 보다 svn 레파지토리를 git처럼 쓰기 위해서 있는 기능인듯 하다.)

  • 사전 준비 : 사전에 git과 git-svn설치

1. git 으로 사용할 폴더를 하나 생성

$ mkdir git-folder
$ cd git-folder


2. git-svn을 통해 git repository 초기화

$ git svn init [svn repository url] -T trunk -b branches -t tags
  • 설정되어 있는 svn 구조에 맞게 맞춰줘야 함.
    회사의 경우 svn repository 안에 project folder 가 있고 그 안에 trunk, branches, tags 폴더가 있어서
    git svn [svn repository url]/projectname 이렇게 해주었음.
  • trunk, branches, tags 폴더 명도 다르게 셋팅 되어 있다면 그대로 맞춰줘야 함. (대소문자 구분)

3. svn 히스토리 가져오기

$ git svn fetch
  • history가 많을수록 오래 걸린다.
  • 중간에 실패로 중단되더라도 계속 반복한다.
    (나의 경우: 가져오다가 git gc 어쩌구 하는 오류가 나고 멈추기도 하고, 회사 svn서버가 다운되기도 하여서 3시간 정도가 걸렸다.)

4. 로컬&리모트 브랜치 확인

$ git branch -a

아래와 같이 svn remote branch를 확인 할 수 있다.

* master
remotes/svn/tags/0.1.0
remotes/svn/tags/0.2.0
remotes/svn/tags/0.3.0
remotes/svn/tags/0.4.0
remotes/svn/trunk


5. 새로운 git remote url 로 셋팅해줌.

  $ git remote add origin [git repository url]
  $ git remote -v 


6. 마지막으로 push push

    $ git push origin master