나는 이것도 필요했고 Bombe의 대답과 주변의 도움으로 도움이되었습니다. 레시피는 다음과 같습니다.
가져 오기 힘내-> Subversion
1. cd /path/to/git/localrepo
2. svn mkdir --parents protocol:///path/to/repo/PROJECT/trunk -m "Importing git repo"
3. git svn init protocol:///path/to/repo/PROJECT -s
4. git svn fetch
5. git rebase origin/trunk
5.1. git status
5.2. git add (conflicted-files)
5.3. git rebase --continue
5.4. (repeat 5.1.)
6. git svn dcommit
# 3 후에 다음과 같은 암호 메시지가 나타납니다.
더 높은 수준의 URL 사용 : protocol:///path/to/repo/PROJECT => protocol:///path/to/repo
그냥 무시해
# 5를 실행 하면 충돌 이 발생할 수 있습니다. 상태가 "병합되지 않음"인 파일을 추가하고 rebase를 다시 시작하여이를 해결하십시오. 결국, 당신은 끝날 것입니다; 을 사용하여 SVN 저장소로 다시 동기화하십시오 dcommit
. 그게 다야.
리포지토리 동기화
다음 명령을 사용하여 SVN에서 Git으로 동기화 할 수 있습니다.
git svn fetch
git rebase trunk
Git에서 SVN으로 동기화하려면 다음을 사용하십시오.
git svn dcommit
최종 메모
라이브 저장소에 적용하기 전에 로컬 사본에서이를 시도 할 수 있습니다. Git 저장소의 사본을 임시 위치에 만들 수 있습니다. cp -r
모든 데이터가 저장소 자체에 있으므로 간단히 사용 하십시오. 그런 다음 다음을 사용하여 파일 기반 테스트 저장소를 설정할 수 있습니다.
svnadmin create /home/name/tmp/test-repo
다음을 사용하여 작업 복사본을 확인하십시오.
svn co file:///home/name/tmp/test-repo svn-working-copy
그것은 당신이 지속적인 변화를하기 전에 사물을 가지고 놀 수있게 해줍니다.
부록 : 엉망인 경우 git svn init
실수로 git svn init
잘못된 URL 로 실행 하고 작업을 백업 할만큼 똑똑하지 않은 경우 (요청하지 않음) 동일한 명령을 다시 실행할 수 없습니다. 그러나 다음을 발행하여 변경 사항을 취소 할 수 있습니다.
rm -rf .git/svn
edit .git/config
섹션 [svn-remote "svn"]
섹션을 제거 하십시오.
그런 다음 git svn init
새로 실행할 수 있습니다 .