문제

SVN 체크 아웃에서 폴더를 무시할 수 있습니까? 빌드 서버에서 결제시 문서 폴더를 무시해야합니다.

편집하다: 외부를 무시하는 것은 옵션이 아닙니다. 필요한 외부가 있습니다.

도움이 되었습니까?

해결책

결제시 폴더를 직접 무시할 수는 없지만 SVN 1.5에서 희소 체크 아웃을 사용할 수 있습니다. 예를 들어:

$ svn co http://subversion/project/trunk my_checkout --depth immediates

이렇게하면 프로젝트 트렁크에서 파일과 디렉토리를 'My_checkout'으로 확인하지만 해당 디렉토리로는 다시 반복되지 않습니다. 예 :

$ cd my_checkout && ls
bar/ baz foo xyzzy/

그런 다음 'bar'의 내용을 아래로 내립니다.

$ cd bar && svn update --set-depth infinity

다른 팁

예, SVN 1.6을 사용할 수 있습니다. 먼저 체크 아웃을 한 다음 폴더를 제외하려면 폴더를 표시 한 다음 원치 않는 폴더를 삭제해야합니다.

svn checkout http://www.example.com/project
cd project
svn update --set-depth=exclude docs
rm -fr docs

지금부터 작업 사본에 대한 업데이트는 Docs 폴더를 다시 채울 수 없습니다.

보다 http://blogs.collab.net/subversion/2009/03/sparse-directories-now-with-exclusion/ 그리고 http://subversion.apache.org/docs/release-notes/1.6.html#sparse-directory-exclusion 자세한 사항은.

1.5 이전 버전을 사용하면 가장 많은 폴더 만 체크 아웃 한 다음 선택적으로 업데이트하면 업데이트가 체크 아웃 한 내용 만 영향을 미친다는 것을 알았습니다. 즉.

svn co -N foo
cd foo
svn up -N bar
svn up

-N 플래그는 작업을 비수체 적으로 만듭니다. 위의 내용은 Foo 수준에서 다른 것을 확인하지 않습니다. 폴더가 있다고 말합니다 lala, 최종 SVN UP은 해당 폴더를 확인하지 않지만 업데이트됩니다. bar.

그러나 나중에 당신은 할 수 있습니다 svn up lala 따라서 결제에 추가하십시오.

아마도 이것은 또한 1.5와 함께 작동합니다.

이것은 TortoisesVN Client 1.7.1에 있습니다 (일부 이전 버전으로도 사용할 수 있음) :

  • SVN 체크 아웃 -> 저장소 URL을 선택하십시오

  • "체크 아웃 항목"(체크 아웃 깊이 아래)을 클릭하고 필요한 폴더 만 선택하십시오!

문서 폴더를 외부 저장소에 넣은 다음 사용할 수 있습니다. svn checkout --ignore-externals.

예, 전복 1.5 불리는 기능이 있습니다 드문 드문 결제 그것은 이런 종류의 일을 정확히 할 수 있습니다.

회귀 테스트를 제외하면서 WebKit 소스를 확인하는 방법을 찾고있는이 질문을 발견했습니다. 나는 다음과 같이 끝났다.

svn checkout http://svn.webkit.org/repository/webkit/trunk WebKit \
  --depth immediates

cd WebKit
find . \
  -maxdepth 1 -type d \
  -not -name '.*' \
  -not -name '*Tests' \
  -not -name 'Examples' \
  -not -name 'Websites' \
  | (while read SUBDIR; do svn update --set-depth infinity "$SUBDIR"; done)

참고 적합한대로 제외를 변경할 수는 있지만.* 작업 디렉토리 (이미 최신 상태) 및 모든 .SVN 디렉토리를 건너 뛰는 것이 좋습니다.

최근에 같은 작업을 해결했습니다. 아이디어는 저장소에서 폴더/파일의 즉각적인 목록을 가져 오는 것입니다. 필요한 항목을 제외한 다음 나머지 폴더를 확인하고 즉시 파일을 업데이트하는 것입니다. 다음은 해결책입니다.

    # Path to the svn repository to be checked out
rpath=https://svn-repo.company.com/sw/trunk/ && \
    # This files are to be excluded (folders are ending with '/')
    # this is a regex pattern with OR ('|') between enties to be excluded
excludep='docs_folder/tests_folder/|huge_folder/|file1|file2' && \
    # Get list of the files/folders right under the repository path
filtered=`svn ls $rpath | egrep -v $excludep` && \
    # Get list of files out of filtered - they need to be 'uped'
files=`echo $filtered | sed 's| |\n|g' | egrep '^.*[^/]$'` && \
    # Get list of folders out of filtered - they need to be 'coed'
folders=`echo $filtered | sed 's| |\n|g' | egrep '^.*[/]$'` && \
    # Initial nonrecursive checkout of repository - just empty
    # to the current (./) working directory
svn co $rpath ./ --depth empty && \
    # Update the files
svn up $files &&\
    # Check out the all other folders finally.
svn co `echo $folders | sed "s|\<|$rpath|g"`

소스 작업 디렉토리로 변경. 명령을 복사하십시오. 반죽. 적절한 URL을 변경하고 패턴을 배제하십시오. 명령을 실행하십시오.

감사,

아니요, 무시는 파일을 추가하기위한 것입니다.
드문 결제를 사용할 수 있습니다 (SVN 1.5를 사용하는 경우)

몇몇 다른 사람들이 언급했듯이, 당신은 svn : externals properties, 그리고 결제 할 때 -ignore-externals 옵션 만 사용할 수 있습니다. 그러나 주목할만한 점은 SVN : 외부는 ~ 아니다 반드시 다른 저장소를 참조해야합니다. 동일한 repo의 다른 폴더에 대한 참조 일 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top