개발 환경 및 상황에 따라 다릅니다.
내 개인적인 경험으로는 완전히 다른 프로젝트 (프로젝트에 의존하지 않는 프로젝트)에 대해 다른 저장소의 하위 집합을 작성합니다. 그러나 우리는 또한 많은 하위 구성 요소가있는 프로젝트를 개발할 때 "하위 모듈"유형의 디렉토리 구조를 사용합니다.
예를 들어, 우리는 핵심 프로젝트를해야합니다 :
repository1
--> trunk
--> branches
포함 모든 프로젝트가이 저장소가 사용할 수있는 기능의 집합을 나타내는이 REPO. 다른 리포지토리에 의존하지 않습니다.
그러나 여러 구성 요소를 개발하는 데 사용하는 다른 저장소가 있습니다.
repository2
module1
--> trunk
--> branches
module2
--> trunk
--> branches
module3
--> trunk
--> branches
module4
--> trunk
--> branches
module5
--> trunk
--> branches
MyModules
YourModules
이 방법을 사용하는 이유는이 모듈들이 서로 사용할 수 있기 때문입니다. 예를 들어 개발자 A는 MyModules 안에있는 새로운 모듈 인 module4에서 작업 할 수 있습니다. 새로운 모듈을 작동 시키려면 external을 모듈 1과 모듈 3에 사용해야합니다. 개발자 B는 module5가 YourModules 인 모듈 1과 모듈 3에 대해서도 작업 할 수 있습니다. 하지만이 모듈에는 모듈 2와 3이 필요합니다.
이 방법으로 외부를 사용하면 사용자는 기본적으로 체크 아웃 폴더 (MyModules 및 YourModules)를 설정할 수 있습니다. 따라서 개발자 A가 MyModule을 체크 아웃하면 모듈 1, 3 및 4가 각각 체크 아웃됩니다. 마찬가지로 개발자 B는 2,3 및 5로 YourModule을 체크 아웃합니다. 모든 사용자가 여전히 "가리키는"이점이 있습니다. 모듈 1, 2 및 3의 기본 디렉토리는 서로의 별도 서브 프로젝트입니다.
나는 약간 어리지만, 두 가지 방법 모두에 대해 사례 사용법을 전달하는 데 도움이되기를 바랍니다. :)
고려해야 할 한 가지 점은 해당 파일의 외부는 현재 동일한 저장소 내에서만 가능하다는 것입니다. – royalTS
* 저장소 *의 의미에 달려 있습니다. 단일 리포지토리에는 종종 질문에 설명 된 구조에 많은 프로젝트와 모듈이 포함되어 있습니다. [이 링크] (http://svnbook.red-bean.com/nightly/en/svn.tour.importing.html#svn.tour.importing.layout)를 참조하십시오. –
프로젝트에 전용 리포지토리가있는 경우 종속성 및 공유 프로젝트를 관리하기가 어려울 수 있습니다. 단일 저장소를 사용하는 것이 좋습니다. 개별 리포가 필요한 구체적인 이유는 무엇입니까? – saurabh14292