2012-04-04 8 views
7

Subversion 저장소 'repo'가 있습니다. repo 내부는 trunk/및 branches/directories입니다. 가지 안에/여러 개의 가지가 있습니다. 1.0 /, 1.1 /. 이러한 분기/디렉토리에는 상대적으로 큰 응용 프로그램이 포함되어 있습니다.다른 모든 디렉토리 및 하위 디렉토리를 가져 오지 않고 Subversion 외부를 가져 오는 방법

'myExternal'이라는 repo의 루트에 외부를 추가하고 싶습니다. 외부를 정의 할 때 SVN에 myExternal/디렉토리를 만들 수있는 유일한 방법은 repo의 루트에서 'svn up'을 실행하는 것입니다. 그러나 이로 인해 브랜치의 전체 내용이 체크 아웃 될 수 있습니다. 이는 수용 할 수 없습니다 (우리는 myExternal을 가져와야하는 개발자가 많으며/repo 사본에 추가 된 개발자가 모두 있으며 기가 바이트를 체크 아웃 할 수는 없습니다). 불필요한 가지).

'svn up -set-depth immediates'를 시도했지만 외관을 얻지 못하는 것 같습니다. svn에게 모든 분기를 가져 오지 않고 myExternal /을 가져 오도록 지시 할 수있는 방법이 있습니까?

SVN 1.7을 사용 중입니다.

답변

4

예, 이는 알려진 서브 버전 externals are not created unless depth=infinity입니다.

myExternal이 repo이 아니라 하위 폴더에 첨부되도록 디렉토리 구조를 다시 디자인 할 방법이 없다고 생각합니다. /트렁크 및 모든 폴더 /지점에 설정하십시오.

아니면 처음 REPO의 immediate 만을 인출 한 후 환매 특약에 설정 외관 가져 오는 스크립트를 만들 수 있습니다 (이 REPO의 속성을 읽어 나타날 수 있습니다 SVN propget SVN : 외관).

6

외부는 단지 svn 체크 아웃이므로 수동으로 체크 아웃 할 수 있습니다.

다음과 같은 명령을 사용할 수도 있습니다. 외부가 다른 형식 인 경우 조금 수정해야 할 수도 있습니다.

svn propget svn:externals | awk '{print $2, $1}' | xargs -L1 svn co 
+1

'svn propget svn : externals | xargs -L1 svn co' 내 경우에 근무 –

+0

svn propget svn : externals | sed -e 's//. \ //'| sed -e 's/\'// g '| xargs -L1 svn co-worked – TCS

+0

우리는 이미 수동으로 체크 아웃 중이라는 것을 명확히해야했습니다. 나의 의도는 초기 '체크 아웃'으로 이것을 수행 할 원래 방법이 있는지 확인하는 것이 었습니다. – erich8