SVN의 잘 알려지지 않은 속성 중 하나는 svn:externals이다. 이 속성은 현재 저장되어 있는 소스 트리의 일부분을 다른 저장소에서 가져오도록 지정하는 속성인데, 이를 활용하면 디스크 공간을 절약하고 소스 관리를 훨씬 효율적으로 할 수 있다. 예를 들어, 다음과 같은 상황에서 이 속성을 활용할 수 있다.
project1 --- trunk --- main
--- service
--- extra
--- support --- extlib
extlib --- trunk
project1의 suppport 밑의 extlib는 project1 개발에 필요한 라이브러리지만, 이 라이브러리는 이미 저장소의 다른 위치에서 관리되고 있다. extlib를 직접 project1에 포함시킬 수 있겠지만, 그렇게되면 project1 개발 도중 extlib에서 일어난 변화는 일일이 extlib에 적용해야 한다.
이럴 경우, support 디렉토리에 svn:externals 속성을 적용하여 extlib --- trunk에서 해당 항목을 가져오도록 지정할 수 있다. extlib에 수정이 필요하다면 extlib를 체크아웃하여 필요한 수정을 하고, 다시 project1 디렉토리로 돌아와 업데이트를 해주면 SVN은 즉시 변경 사항을 project1에 반영할 것이다. 한 두개 이상의 프로젝트에 공통적으로 적용되는 소스를 포함해야 할 때, 이 방법은 프로젝트마다 중복된 소스를 단일한 방법으로 관리할 수 있는 최상의 수단이다. 사용 방법은 다음과 같다:
support 디렉토리에서,
svn propset svn:externals "extlib svn://extlib/trunk" .
만약, SVN의 환경 변수에 편집기를 지정했다면 다음의 명령으로 복수의 속성을 동시에 지정할 수 있다:
svn propedit svn:externals .
이 명령을 입력하면 설정한 편집기에서 extlib svn://extlib/trunk을 입력할 수 있는데, 여러 개의 디렉토리를 지정할 수도 있다. svn://과 같은 시작어는 임의로 정한 것인데, http를 통한 접근이 될 수도 있고, 내장 SVN 서버를 가리킬 수도 있다.
단, svn:externals 속성은 현재 속한 저장소의 다른 위치를 가리켜야 한다. 예를 들어, 특정 branches의 트리가 trunk의 어떤 리비전을 복사한 것이라면, branches 가지의 하위 트리에 다시 trunk의 특정 경로에 대해 svn:externals 속성을 지정할 수 없다.