일상의 정리

SVN to GIT

리눅스/설치

SVN migration to GIT with history


먼저 git 에 svn sub command 추가

# yum install git-svn.noarch


이 후 git 로컬 저장소를 생성할 id로 로그인

$ svn log ^/ --xml | grep -P "^<author" | sort -u | perl -pe 's/<author>(.*?)<\/author>/$1 = /' > users.txt

users.txt 를 열어서 아래 형식으로 수정

username = 사용자명 <이메일@도메인>


$ git svn clone file:///home/svn/저장소/  --authors-file=users.txt --no-metadata  --trunk /  -s <project-dir>

$ cd <project-dir>

$ git for-each-ref refs/remotes/tags | cut -d / -f 4- | grep -v @ | while read tagname; do git tag "$tagname" "tags/$tagname"; git branch -r -d "tags/$tagname"; done
$ git for-each-ref refs/remotes | cut -d / -f 3- | grep -v @ | while read branchname; do git branch "$branchname" "refs/remotes/$branchname"; git branch -r -d "$branchname"; done

$ git remote add origin ssh://user@www.example.com:2222/home/git/project.git

$ git push origin --all

$ git remote show origin



다른 머신 또는 사용자로 로그인


$git clone ssh://user@www.example.com:2222/home/git/project.git <project-dir>