2011-10-17 2 views
1

git으로 svn 저장소를 복제하려고하는데 가져 오는 단계에서 권한 부여 오류가 발생합니다. 난 단지 현재 프로젝트의 트렁크 얻으려고 : 내가 가장 최근의 버전을 가져 오는 시도했습니다git-svn 권한 부여 오류가 발생했습니다.

$ git svn clone svn://some/repo --trunk=svn://some/repo/trunk/project/ --username afoglia . 
Initialized empty Git repository in /home/afoglia/projects/new_repo/trunk.git/project/.git/ 
Using higher level of URL: svn://some/repo/trunk/project => svn://some/repo 
W: Ignoring error from SVN, path probably does not exist: (160013): Filesystem has no item: File not found: revision 100, path '/trunk/project' 
W: Do not be alarmed at the above message git-svn is just searching aggressively for old history. 
This may take a while on large repositories 
Authorization failed: Authorization failed at /home/afoglia/.local/stow/git-1.7.7/libexec/git-core/git-svn line 3099 

을, 그 같은 메시지와 함께 실패합니다.

git이 첫 번째 단계에서 저장소에 액세스하고 있습니다. 이 디렉토리를 사용하여 개정판에 접근함에 따라 개정판 카운터가 증가하는 것을 볼 수 있습니다. 그래서 나는 왜 실패가 있는지 모른다. 레이아웃은 단일 트렁크 디렉토리 아래에있는 여러 프로젝트이며 그 프로젝트와 그 아래를 읽을 수있는 권한 만 있습니다.

Perl에는 익숙하지 않지만 다른 die 메시지가없는 한 3099 줄은 "Authorization failed"라는 문자열이 스크립트에 없습니다.

또한 내 자신의 계정으로 git를 설치해야하고 svn도 컴파일하고 설치해야합니다. 따라서 이것은 perl 라이브러리가 누락 된 결과 일 수 있습니다. (하지만 보안되지 않은 svn 저장소가 성공적으로 복제되었으므로 확실한 것은 아닙니다.)

답변

0

먼저 --trunk은 절대 URL이 아닌 subdir을 허용합니다. 다음으로 가장 많은 개정판을 받으려면 --parent을 제공해야합니다. 그것은 "--parent"옵션을 좋아하지 않는이 방법을

git svn clone --username afoglia --parent svn://some/repo/trunk/project/ project-git 
+0

자식 svn의 복제를 시도 작동하지 않는 경우이 방법을

git svn clone --username afoglia --parent svn://some/repo --trunk=trunk/project/ project-git 

을보십시오. '알 수없는 옵션 : 부모 '. 그래서 나는'git svn init' (작동)과'git svn fetch --parent'를 시도했습니다. 'fatal : ambiguous argument 'HEAD': ...'오류로 실패합니다. 아무 것도 가져 오지 않으면 git에 부모를 가져올 HEAD가 없으므로 의미가 있습니다. 또한, 나는 trunk/project 서브 디렉토리로 트렁크를 시도했다. 차이점은 없었습니다. 나는 2 레벨 트렁크 subdir이 원인이었을 가능성이 희박한 경우 전체 URL (맨 페이지가 명시 적으로 지원한다고 말함)로 전환했습니다. – AFoglia

+0

죄송합니다.'git clone --parent' 대신'git clone -r HEAD'를 시도하십시오. –