설명서

공통 하위 프로젝트 포함

때로는 작업 사본에 다른 프로젝트, 예를 들어 라이브러리 코드를 포함하고 싶을 때가 있습니다. 이를 처리하는 방법은 최소 4가지가 있습니다.

svn:externals 사용

프로젝트 폴더에 svn:externals 속성을 설정하십시오. 이 속성은 하나 이상의 줄로 구성되며, 각 줄은 공통 코드의 체크아웃 폴더로 사용할 하위 폴더의 이름과 해당 위치로 체크아웃할 저장소 URL을 포함합니다. 자세한 내용은 “외부 항목” 섹션을 참조하십시오.

새 폴더를 커밋하십시오. 이제 업데이트할 때 Subversion은 해당 프로젝트의 복사본을 저장소에서 작업 사본으로 가져옵니다. 필요한 경우 하위 폴더가 자동으로 생성됩니다. 주 작업 사본을 업데이트할 때마다 모든 외부 프로젝트의 최신 버전도 받게 됩니다.

외부 프로젝트가 동일한 저장소에 있는 경우, 주 프로젝트를 커밋할 때 해당 위치에서 변경한 모든 내용이 커밋 목록에 포함됩니다.

외부 프로젝트가 다른 저장소에 있는 경우, 외부 프로젝트에 대한 변경 사항은 주 프로젝트를 커밋할 때 표시되거나 지시되지만, 해당 외부 변경 사항은 별도로 커밋해야 합니다.

설명된 세 가지 방법 중, 이것은 클라이언트 측에서 설정이 필요 없는 유일한 방법입니다. 폴더 속성에 외부 항목이 지정되면, 모든 클라이언트가 업데이트할 때 채워진 폴더를 얻게 됩니다.

중첩된 작업 사본 사용

공통 코드를 포함할 새 폴더를 프로젝트 내에 생성하되, Subversion에 추가하지 마십시오.

새 폴더에 대해 TortoiseSVN체크아웃을 선택하고 공통 코드 사본을 해당 폴더로 체크아웃합니다. 이제 주 작업 사본 내에 중첩된 별도의 작업 사본을 갖게 됩니다.

두 작업 사본은 독립적입니다. 부모에 변경 사항을 커밋할 때, 중첩된 WC(작업 사본)에 대한 변경 사항은 무시됩니다. 마찬가지로 부모를 업데이트할 때, 중첩된 WC는 업데이트되지 않습니다.

상대 경로 사용

여러 프로젝트에서 동일한 공통 핵심 코드를 사용하고, 이 코드를 사용하는 모든 프로젝트마다 여러 작업 사본을 유지하고 싶지 않다면, 이 코드를 사용하는 다른 모든 프로젝트와 관련된 별도의 위치로 체크아웃할 수 있습니다. 예를 들어

C:\Projects\Proj1
C:\Projects\Proj2
C:\Projects\Proj3
C:\Projects\Common
        

공통 코드를 상대 경로(예: ..\..\Common\DSPcore)를 사용하여 참조할 수 있습니다.

프로젝트가 관련 없는 위치에 흩어져 있는 경우, 이 방법의 변형을 사용할 수 있습니다. 즉, 공통 코드를 한 위치에 두고 드라이브 문자 대체(drive letter substitution)를 사용하여 해당 위치를 프로젝트에서 하드 코딩할 수 있는 어떤 것으로 매핑하는 것입니다. 예를 들어, 공통 코드를 D:\Documents\Framework 또는 C:\Documents and Settings\{login}\My Documents\framework로 체크아웃한 다음 다음을 사용하십시오.

SUBST X: "D:\Documents\framework"
        

소스 코드에서 사용되는 드라이브 매핑을 생성합니다. 그러면 코드는 절대 경로를 사용할 수 있습니다.

#include "X:\superio\superio.h"
        

이 방법은 전체 PC 환경에서만 작동하며, 팀이 이 알 수 없는 파일들이 어디에 있는지 알 수 있도록 필요한 드라이브 매핑을 문서화해야 합니다. 이 방법은 폐쇄형 개발 환경에서만 엄격하게 사용되며, 일반적인 사용에는 권장되지 않습니다.

프로젝트를 저장소에 추가

아마도 가장 쉬운 방법은 프로젝트를 자신의 프로젝트 작업 사본의 하위 폴더에 단순히 추가하는 것입니다. 하지만 이렇게 하면 이 외부 프로젝트를 수동으로 업데이트하고 업그레이드해야 하는 단점이 있습니다.

업그레이드를 돕기 위해 TortoiseSVN은 탐색기 오른쪽 끌기 컨텍스트 메뉴에 명령을 제공합니다. 외부 라이브러리의 새 버전을 압축 해제한 폴더를 작업 사본의 폴더로 오른쪽으로 끌어다 놓은 다음, 상황 메뉴SVN 공급업체 분기(Vendorbranch) 여기에를 선택하십시오. 그러면 새 파일이 대상 폴더로 복사되고, 새 파일은 자동으로 추가되며, 새 버전에 더 이상 없는 파일은 제거됩니다.

TortoiseSVN 홈페이지

한국어 中文