기존에 형상관리를 SVN으로 사용 중이였는데 Git으로 마이그레이션을 진행해보겠습니다.
https://bitbucket.org/atlassian/svn-migration-scripts/downloads/
위 사이트에 접속해서 아틀라시안에서 제공하는 svn 마이그레이션 툴을 다운 받습니다.
java -jar svn-migration-scripts.jar verify
정상적으로 설치가 됐다면 아래와 같이 정보를 확인할 수 있습니다.
git는 버전 1.7.7.5 이상 subversion은 1.6.17 이상이 필요하다고 합니다.
svn에서 history를 이전 하려면, svn 저장소로부터 author 정보를 추출해야 합니다.
java -jar svn-migration-scripts.jar authors svn://svn.example.com/project {username} {passwd} > authors.txt
{username}에는 svn 계정 이름, {passwd}에는 패스워드를 넣으면 됩니다. 그러면 아래와 같은 형태로 author 정보가 authors.txt로 추출됩니다.
[예시]
aaa = aaa aaa@mycompany.com
bbb = bbb bbb@mycompany.com
왼쪽은 svn이름, 오른쪽은 git 이름과 이메일 주소입니다
commit history를 git에 등록하기 위해서는 이메일 주소가 필요합니다.
오른쪽 이름을 각각 맞게 바꾸어 주면 된다.
[예시]
aaa = Hong Kil Dong kdhong@velog.com
bbb = Kim Min Sy mskim@velog.com
svn 사용자인 aaa의 이름은 홍길동이고, 이메일 주소는 kdhong@velog.com 입니다.
git svn clone 이라는 명령어로, svn 저장소를 git 저장소로 다운로드 받습니다.
2. 에서 생성한 authors.txt를 사용해 history를 이전합니다.
git svn clone svn://svn.example.com/project --authors-file=users.txt --no-metadata
이전이 완료되었다면 지금까지의 svn 커밋 사항이 git의 기본 branch인 master에 commit 됩니다.
먼저 원격지(origin)를 등록한 다음, push한다.
git remote add origin http://{username}@git.example.com/project
git push origin master