본문 바로가기
DevOps/Git

[git] SVN을 Git으로 Migration 하기

by 오이가지아빠 2021. 9. 17.

#1. 사용자 정보 취합하기

SVN 소스를 git으로 전환하기 위해서는 일단 사용자 정보를 정리해야 합니다.

그냥 전환했다가는 커밋히스토리에 저장된 사용자 정보가 이상하게 보여지게 됩니다.

따라서 일단 전환하려는 SVN 에 커밋했던 사용자들의 정보를 git으로 매핑해주는 작업이 필요합니다.

 

적당한 곳에 폴더를 만들고 users.txt 파일에 다음과 같은 내용을 작성합니다.

user1 = user1 <user1@email.com>
user2 = user2 <user2@email.com>
user3 = user3 <user3@email.com>
.
.
.
user10 = user10 <user10@email.com>

왼쪽은 SVN id, 오른쪽은 그 사용자의 git id, email 정보입니다.

위처럼 저장한 파일을 생성하는 것이 1단계입니다.

이 단계에서 사용자가 누락되면 mig도중에 알려주긴 합니다만, 처음부터 다시 해야해서 귀찮으니 빠지는 사용자가 없도록 꼼꼼하게 작성하는 것이 좋습니다.

 

#2. git명령어를 통해 Migration 하기

user 매핑정보 작성이 완료되었다면, 이제는 명령어 한줄만 실행하면 됩니다.

git svn clone http://svnhost:port/저장소주소 --authors-file=users.txt --no-metadata

 

위 명령어를 수행하면 잠시 후 로컬에 git으로 전환된 로컬 저장소가 생성됩니다.

수행 과정에서 svn 체크아웃을 위해 사용자 정보를 요구하게 될 수도 있습니다. svn에 접근 가능한 사용자로 인증해주세요.

 

전환이 완료되면 위와 같은 화면이 나오게 됩니다.

 

만약 아래와 같은 에러가 나온다면, 사용자 정보가 누락된 것이니 users.txt 파일에 해당사용자를 추가한 후 다시 시도해주세요. 이때는 git svn fetch를 사용해서 이어서 받거나, 생성된 폴더를 지우고 git svn clone 을 재실행 합니다.

 

#3. git 저장소에 push 하기

로컬에 git저장소가 생겼으니, 이제 원격 git 서버에 push 하는 일만 남았습니다.

git remote add origin http://githost:port/원격git주소.git
git push -u origin master

이제 원격 git 저장소에 접속해보면, 정상적으로 히스토리를 간직한 git소스가 올라가 있는 것을 확인할 수 있습니다.

 

반응형

'DevOps > Git' 카테고리의 다른 글

Gitea 설치 - 사내용 git remote 서버 구축(Windows)  (2) 2023.02.25
git fork 해서 공동작업 하기  (0) 2021.03.30
git 풀 리퀘스트 하기  (0) 2021.03.11
git commit 하기  (0) 2021.03.11
git clone 하기  (0) 2021.03.11

댓글