지난 주에 저는 우리 svn 저장소를 git로 변환했습니다. 실행하려면 약 4 일이 걸렸습니다. 우리의 초기 계획은 주말에 스크립트를 실행하고 월요일에 git으로 전환하는 것이었지만 저장소의 크기 때문에 이것이 불가능한 것으로 판명되었습니다.svn repo가 git로 변환 된 후에 만들어진 svn 커밋을 추가 할 수 있습니까?
이제 테스트 실행을 온라인 상태로 유지하고 최신 svn 커밋을 git에 추가하는 것에 대해 생각하고 있지만 몇 가지 문제가 있습니다. 그 중 많은 경험이 없기 때문에 내가 찾은 모든 명령은 SO와 Google 덕분입니다.
git svn clone -r69489 svn-repo
cd repo
git svn rebase
하지만 지금은 꽤 해요 :
마지막 자식으로 전환되었다 그래서 나는 모든 내가했던 가장 먼저하는 일이었다 69489. 이후 커밋 얻을 수 69,488 것 한 커밋 (this thread에 감사드립니다) 많이 붙어있어. (머리에) 논리적 인 다음 단계는 원격의 bitbucket 저장소가 새 로컬 자식의 repo에게 두 병합 할 것 같다 :
git remote add origin bitbucket-path
git pull origin master
git push origin master
을하지만이 작업을 수행 할 때, 내가 병합 충돌을 얻을 수있다 ' 자동으로 해결됩니다. git는 무엇을해야할지 모르기 때문에 이상하게 보입니다 ... 나는 뭔가를 놓치고 있습니까? 아니면 충돌을 제거하기 위해 수 많은 파일을 수동으로 처리해야합니까?
'git svn fetch'는 우리 저장소에서 실행하기 위해 오래 걸립니다. 이것이 우리가 피하려고하는 것입니다. 같은 일을 할 수있는 방법이 있습니까? 마지막 n 개 수정 만 할 수 있습니까? 나는'git svn clone -rN'을 통해 이것을 다운로드 할 수 있었지만, git repo에 이러한 변경 사항을 적용 할 수없는 것 같습니다. –
'git svn fetch'는 _once_ 만 호출합니다. 마지막 버전은'git svn rebase'에 의해 꺼내 질 것이고 보통 이것은 빠릅니다. –
그것이 내가 한 일이지만 매번 처음부터 시작됩니다. 내가 찾은 스크립트는 svn 폴더 나 참조를 남기지 않고 자식을 자식으로 변환했습니다. 매번 r1에서 시작하는 이유가 될 수 있습니까? 내가 말했듯이, 나는 이것에 아주 새롭다. 도와 주셔서 감사합니다. –