git-svn 복제 재개


117

git-svn의 복제 작업을 사용하여 SVN 저장소 복제를 시작했습니다. 약 6 시간의 가져 오기 (큰 저장소) 후에 내 컴퓨터가 작동하여 잠을 잤습니다. 초기 작업을 모두 다시 실행하지 않고 작업을 재개 할 수있는 방법이 있습니까?

답변:


156

git svn fetch재개 명령은 git svn clone여러 소스에 의해 확인된다 :

(참고로, 초기 복제 단계에서 연결이 끊어 지거나 연결을 중지해야하는 경우 복제를 다시 시작하려면 위의 명령을 실행하여 기록 다운로드를 다시 시작해야합니다).

.NET에서 메모리 누수가있는 것 같습니다 git-svn. git-svn프로세스 의 크기 는 느리게 커졌고 약 2 주 후에는 1.2GB의 상주 크기가되었으며,이 시점에서 OS는 포크를 거부했습니다.
사실, 이것은 변장 한 축복이었습니다.
간단한 " git svn fetch"로 중단 된 클론을 재개 할 수 있었고 이제는 훨씬 더 작은 힙으로 훨씬 더 빠르게 실행되었습니다.
이것은 실제로 매우 잘 작동하여 매일 저녁과 매일 아침 프로세스를 중단하고 다시 시작하는 습관이 생겼습니다. 며칠 후 완료되었습니다.

git-svn기존 Subversion 저장소를 복제 하여 모험을 시작 합니다.

git svn clone url://path/to/repo -s

-s플래그는 저장소가 "트렁크, 브랜치, 태그"규칙을 사용한다고 가정합니다. 그렇지 않은 경우 Git에서이를 알도록하려면 브랜치와 태그를 나타내는 디렉토리를 수동으로 지정해야합니다.

SVN에서 모든 단일 개정판을 가져와 로컬로 커밋하므로 시간이 오래 걸립니다. 어떤 이유로 든 중지되면을 사용하여 다시 시작할 수 있습니다 git svn fetch.


1
제공된 명령 줄 옵션 중 일부 git svn clonegit svn fetch. 예를 들어 HEAD SVN 개정판 만 가져 오도록 설정 -r HEAD했습니다 git svn clone. 재개하려면 git svn fetch모든 개정판을 가져 오기 시작하는을 실행 했습니다.
amolbk

이것은 첫 번째 개정판부터 모든 것을 시작했습니다 .... 저는 10,000 개의 커밋이 있습니다! 중단 된 부분 부터 다시 시작 하는 방법에 대한 생각이 있으 십니까?
Nathan JB

@ NathanJ.Brauer가 내 머리 위에 있지 않습니다. 새로운 질문을 할 수 있습니다 (OS, git 버전 및 svn 버전을 사용하고 컨텍스트에 대한이 답변에 대한 링크)
VonC

1
에서 실수로 네트워크 연결을 종료 git svn clone하여 프로세스를 중단했습니다. git svn clone다시 실행 하면 진행중인 클론이 다시 시작됩니다. 다른 사람이 한 건가요?
Kehlan Krumme

1
@Kehlan 분명히 그렇습니다, 아래 zan-xhipe의 대답
VonC

17

나는 (나는 희망하는) 정답을 제공 하는 블로그 게시물 을 찾았 습니다 .

분명히 실행 git svn fetch하면 복제 작업이 효과적으로 완료됩니다. 여기에 희망이 있습니다!


7
git svn rebase가져 오기 후에 작업을 완료하고 트렁크를 반영하는 마스터 브랜치 를 사용해야 합니다.
Romuald Brunet

나중에 참조 할 수 있도록 블로그 게시물에 대한 링크를 제공 할 수 있습니까?
jmanning2k 2010

6

VonC, CaptainAwesomePants 및 Archi는 모두 git svn fetch트릭을 수행 한다고 말했습니다 . 나는하고 있었는데 git svn clone url... --authors-file=path/to/file및 저자 중 하나는 저자 파일에없는 때문에 복제가 실패했습니다. 작성자를 파일에 추가하고 실행 한 git svn fetch후 중단 된 지점부터 계속해서 git 로그를 살펴보면 새로 추가 된 작성자를 사용하여 커밋 작성자의 이름을 대체 한 것 같아서 모두 달콤했습니다.


5

최소한 git 2.1.0부터 다시 발행하여 재개 할 수 있습니다. git svn clone

그러나 이것은 .git / config의 일부 항목을 복제하여 제거하면 모든 것이 정상입니다


From at least git 2.1.0...이 기능이 git 1.9.1에 존재했는지 아십니까?
CivFan

죄송합니다. 더 이상 이것을 시도 할 svn 저장소가 없습니다.
zan-xhipe

git svn fetch나를 위해 체크섬 불일치의 원인 - 분명히 더 HEAD 없었기 때문에 재설정 불가능했다 : / -하지만 잘 작동, 바로 제거했다 svn-remote.fetch에서.git/config
OLL
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.