2014-01-30 3 views
2

나는이 명령을 사용하여 SVN 저장소에서 로컬 git repo (Windows의 경우)로 마지막 100 개의 리비전을 가져 오려고합니다.git svn clone이 빈 저장소를 만듭니다.

자식 svn의 복제에 http : // ... 몇 가지 이유를 들어 100

-r, 결과 체크 아웃은 .git 폴더가 아닌 다른 비어 있습니다.

그러나 -r 매개 변수가 없어도 시간이 새벽부터 체크 아웃되지만 괜찮습니다.

무슨 일이 일어나는지 아는 사람 있습니까?

감사합니다.

+0

나는 svn',''에서, 가정 -r'하지 _ "는 마지막 100 개의 개정 "_, 개정 번호 100. 현재 개정 번호가 무엇인지 점검하고, 100을 빼고,'-r (그 번호) : HEAD'를 체크 아웃 할 수 있습니다. 부분적인 거울은 일반적으로 추천하지 않습니다. – Wrikken

답변

0

권장되는 명령은 다음과 같습니다는 SVN 권장 (일반적으로 태그되어, 트렁크 및 지점) 저장소에 대한 레이아웃을 준수하기 때문에

git svn clone -s -r rev:HEAD your_svn_server 

-s가 중요하다.

4

git svn에서 -r 매개 변수는 원하는 개정 번호가 아닌 SVN의 개정 번호를 나타냅니다.

귀하의 경우에는
-r <arg>, --revision <arg> 
     Used with the fetch command. 

     This allows revision ranges for partial/cauterized history to be supported. $NUMBER, $NUMBER1:$NUMBER2 (numeric ranges), 
     $NUMBER:HEAD, and BASE:$NUMBER are all supported. 

     This can allow you to make partial mirrors when running fetch; but is generally not recommended because history will be skipped 
     and lost. 

, 당신이 당신의 SVN 저장소의 최신 버전을 찾아 뺄 필요가있을 것이다 :

'자식 도움말 SVN'명령이 발췌 -r 옵션의 설명을 보여줍니다 100을 입력하면 복제본의 시작 버전을 찾을 수 있습니다. HEAD를 최종 개정으로 명시 적으로 정의해야합니다 (개정 내역의 서브 세트 만 복제 할 수도 있기 때문에).

그래서 귀하의 경우, 시작 개정 번호 ($ 레브) 무엇 운동과 같은 명령을 실행

git svn clone -r $rev:HEAD http://... 

아니면 그냥 수정 기록을 가져 오는없이 가장 최근의 개정을 원하는 경우 :

git svn clone -r HEAD http://... 

참고 : 당신은 또한 당신이 전체 저장소의 역사를 복제하는 경우에는이 정말에만 의미가 있습니다, 당신의 SVN 저장소에 표준 트렁크/지점/태그 레이아웃을 지정하려면 -s 옵션을 사용할 수 있습니다. SVN 가지 작업 할 때 그냥 관심있는 지점에서 시작하는 저장소를 복제하는 것이 더 효과적 찾을 예를 들면 다음과 같습니다.

git svn clone -r HEAD http://.../branches/mybranch 
+0

기록상으로는 비슷한 문제가 있었고'-r 100' 또는'-r 100 : HEAD'가 도움이되지 않았지만'-r HEAD'는 어떤 이유로 든 속임수를 사용했습니다. 감사. –