2013-04-05 2 views
4

재구성 할 권한이없는 svn 저장소가 잘못 배치되었습니다. 저장소 루트에서 다양한 깊이의 저장소에 여러 하위 프로젝트가 분산되어 있습니다. 내가 얼마나 깊이 있는지에 관계없이 모든 트렁크 (모든 지사 또는 태그 폴더 제외)를 체크 아웃 할 수 있기를 원합니다. 나는 이것이 wget이 해결할 좋은 문제가 될 것이라고 생각한다.wget을 사용하여 svn 저장소 "checkout"

  1. 를 Wget은 여전히 ​​태그 내가 -X 플래그 제외해야한다고 생각에도 불구하고 폴더를 잡고 :이 명령을 실행하는 동안에

    wget -r -X 'tags' -I "base/of/repo" "http://www.urlrepo.com/" 
    

    내가 달릴 몇 가지 문제 : wget을 내 처음 사용은 다음과 같이 보였다 그

  2. 다운로드 된 파일을 폴더에 배치됩니다 "기본// REPO의"끔찍한되지 않습니다,하지만이 경로

생각에 저장하지 것이 좋을 것이다?

+2

무엇을? svn 명령 행 클라이언트를 사용합니다. 왜'wget'을 사용하겠습니까? 'svn co svn : // repo/trunk /' – thatidiotguy

+0

Repo 전체에 여러 개의 태그/및 분기/폴더가 퍼져 있기 때문에 체크하지 않으려 고합니다. 나는 svn 명령 줄 클라이언트를 통해 해당 폴더를 제외하는 방법이 있다고 생각하지 않습니다. – Josh

+0

repo의 reorg를 위해 밀기를 포기하지 마십시오. 그것은 꽤 간단하고 svn 끝에서 자유롭게 할 수 있으며, 그 가치는 입증하기 쉽습니다. 감각적 인 구조를 소스 코드에 적용하는 데 아무런 관심이 없다면 이력서를 닦으십시오. 괜찮은 프로젝트는 위에서 아래로 잘 정리되어 있습니다.이 수준의 빨라진 시간에주의를 기울이지 않으면 프로젝트 전반에 걸쳐 반영 될 가능성이 큽니다. – thekbb

답변

3

스파 스 체크 아웃을 사용하여 bashsvn으로 재귀 적으로 수행 할 수 있습니다.

뭔가 같은 : 그렇지

svn up --set-depth empty tags 

:

svn up --set-depth infinity dirName 
1

를 작동 할 수 있지만, 그것은 '태그'의 경우 각 하위 폴더에 다음

svn co --depth immediates svn://repo/trunk 

, 100 % 보장되지 않는 것에 의존합니다. ht를 사용할 때 브라우저를 사용할 수 있습니다. tpd를 Subversion 저장소 서버로 사용하십시오.

svn update을 수행 할 때 svn co의 매개 변수와 --set-depth 매개 변수를 사용하여 계산을 제한 할 수 있습니다. 이렇게하면 모든 것을 꺼내지 않고 원하는 폴더와 디렉토리 만 체크 아웃 할 수 있습니다. 이것은 종종 스파 스 체크 아웃이라고도합니다. 보너스로, 이것은 실제 계산입니다. 할 수있는 당신은 커밋 - 당신이 못하게 wget 뭔가 :

$ # I want to just checkout the immediate files under the URL: 
$ svn co --set-depth=immediates $REPO/trunk/foo 
A foo/first 
A foo/second 
A foo/third 
# I want to checkout everything in first and third, but nothing in second: 
$ cd foo 
$ svn up --set-depth=none second #Removes directory second 
$ svn up --set-depth=infinity first third 

이를 사용하여 원래의 예와 함께 작동합니다 :

$ svn co --depth=none http://www.urlrepo.com/ workdir 
$ cd workdir 
$ svn up --set-depth=none base 
$ cd base 
$ svn up --set-depth=none of 
$ cd of 
$ svn up --set-depth=infinity repo