2015년 1월 4일 일요일

git - svn 연동 작업

1. SVN 서버로부터 소스 및 이력을 GIT 형태로 가져 오기
cd orggit
git svn clone svn://softgear@SVNSERVERIP:PORT/trunk/project

2. 받은 디렉토리를 통째로 다른 서버(git전용)로 복사, 읽기쓰기 권한 부여
scp -r -P SSHPORT project softgear@GITSERVER:/opt/git/project

3. GIT 서버의 리파지토리를 bare 로 변경
http://stackoverflow.com/questions/2199897/how-to-convert-a-normal-git-repository-to-a-bare-one
cd /opt/git/project
mv .git .. && rm -fr *
mv ../.git .
mv .git/* .
rmdir .git
git config --bool core.bare true
cd ..; mv project project.git    # renaming just for clarity

4. 다른 PC에서 GIT 서버로부터 clone 받고 작업후 push.

5. SVN 서버에서 GIT 서버로부터 clone 받음
cd newgit
git clone ssh://softgear@GITSERVER:PORT/opt/git/project.git

6. remote SVN 정보를 복사  (처음 받았던 git 리파지터리 orggit 로부터)
cd .git
cp -r orggit/.git/svn .
cp orggit/.git/refs/remotes/git-svn
vi config  ( orggit/.git/config 의 [svn-remove "svn"] 섹션을 붙인다.

7. GIT에서 변경된 내용을 SVN에 다시 반영
git svn dcommit

8. SVN에서 변경된 내용을 GIT로 반영
git svn rebase