2010-04-20 1 views
105

git-svn의 복제 작업을 사용하여 SVN 저장소 복제를 시작했습니다. 가져 오는 데 약 6 시간이 걸리면 (내게 큰 레포) 내 컴퓨터가 나와서 잤다. 초기 작업을 다시하지 않고 작업을 재개 할 수있는 방법이 있습니까?git-svn 복제본 다시 시작

답변

140

git svn clone을 재개하는 git svn fetch 명령이 여러 소스에 의해 확인 : 초기 복제 동안 연결이 죽으면 단계 또는 경우

(덧붙여, 당신은 필요 그런 다음 복제를 다시 시작하면 위 명령을 실행하여 기록 다운로드를 다시 시작해야합니다.

  • Hacker News
    • git-svn에서 메모리 누수가있는 것 같습니다. git-svn 프로세스의 크기는 천천히 증가했으며 약 2 주 후에 OS는 1.2GB의 상주 크기였습니다.이 시점에서 OS는 포기하지 않았습니다.
      이것은 위장의 축복이었습니다.
      간단한 " git svn fetch"을 사용하여 중단 된 복제본을 다시 시작할 수 있었으며 현재는 훨씬 더 작은 힙으로 훨씬 빠르게 실행되었습니다.
      사실 너무 잘 작동하여 매일 저녁과 매일 아침 프로세스를 중단하고 다시 시작하는 습관을 갖게되었습니다. 며칠 후 그 일이 끝났습니다.

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

    -s 플래그가 Y 있다고 가정합니다

    기존 Subversion 저장소를 복제하여 git-svn로 모험을 시작합니다 우리 저장소는 "트렁크, 가지, 태그"규칙을 사용합니다. 만약 그렇지 않다면, Git에게 디렉토리와 브랜치를 알려주기 위해서 브랜치와 태그를 나타내는 디렉토리를 수동으로 지정해야합니다.

    SVN에서 모든 개정판을 가져 와서 로컬로 커밋하기 때문에 시간이 오래 걸립니다. 어떤 이유로 든 중지하면 git svn fetch으로 재개 할 수 있습니다.

    +1

    'git svn clone'에 제공된 명령 줄 옵션 중 일부는 'git svn fetch'에 (해당되는 경우) 제공되어야한다고 생각합니다. 예를 들어, HEAD SVN 개정판 만 얻으려면'git svn clone'에'-r HEAD'를 설정했습니다. 다시 시작하기 위해 모든 버전을 가져 오기 시작한'git svn fetch'를 실행했습니다. – amolbk

    +0

    이것은 첫 번째 개정판부터 모든 것을 시작했습니다 .... 나는 10,000 개의 커밋을가집니다! 다시 시작하는 방법에 대한 생각? –

    +0

    @ NathanJ.Brauer는 내 머리 꼭대기에 있지 않습니다. 새로운 질문을 할 수 있습니다. (OS, git 버전, svn 버전 사용, 문맥에 대한 답변으로 다시 돌아 가기) – VonC

    14

    a blog post은 올바른 대답을 제공했습니다.

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

    +7

    잘 될 것입니다 git svn clone

    를 재발행하여 다시 시작할 수 있습니다 2.1.0 'git svn rebase'를 실행 한 후 작업을 완료하고 트렁크를 반영하는 master 브랜치를 갖습니다. –

    +0

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

    5

    VonC, CaptainAwesomePants 및 Archi 모두가 말하기를 git svn fetch이 트릭을 수행합니다. 내가 git svn clone url... --authors-file=path/to/file을하고 있었는데 저자 중 한 명이 저자 파일에 없기 때문에 복제가 실패했습니다.필자는 파일에 작성자를 추가하고 git svn fetch을 실행했고 나중에 git 로그를 보았을 때 나중에 작성자가 작성한 이름을 바꾼 것으로 추가되었습니다. 적어도 자식에서

    +0

    여기가 동일합니다! 귀하의 게시물 주셔서 감사합니다! –

    3

    방금 ​​그러나이 사람들을 제거하여 .git/config에있는 일부 항목을 복제하고 모든 것을 당신이 사용해야합니다

    +0

    ''적어도 git 2.1.0부터 ...'이 기능이 git 1.9.1에 존재한다면 어떨까요? – CivFan

    +0

    죄송합니다. 더 이상이 작업을 수행 할 svn 리포지토리가 없습니다. –

    +0

    'git svn fetch'는 나에게 체크섬 불일치를 일으켰습니다. HEAD가 없었기 때문에 리셋이 불가능했습니다 :하지만 이것은 잘 작동하지만'.git/config '에서'svn-remote.fetch'를 제거해야했습니다. ' – OLL