시작하기 전에 다음은 Visual Studio 2008과 함께 TortoiseSVN 1.6.x 및 ASP.NET 웹 프로젝트를 예제로 사용하여 얻은 지식을 기반으로합니다.여러 프로젝트가 포함 된 솔루션으로 SVN을 관리하는 모범 사례
사례 연구
말, 행복한 일 시나리오에서, 전형적인 Subversion 저장소 구조가 어딘가에 유사 할 수있다 :
/trunk
/Solution1
/ProjectA
/ProjectB
/ProjectC
/tags
/Solution1
/version_1.0-rc
/version_1.1
/branches
/users
/travis
/Solution1
/john
/Solution1
Solution1
는에 1을 포함하는 비주얼 스튜디오 솔루션입니다 많은 비주얼 스튜디오 프로젝트.- 사용자가 자신의 솔루션 분기에서 작업하면서 트렁크에 다시 병합합니다. 아무도 트렁크에 직접 노력하고 있지 않습니다.
- 태그는 공개 될 때마다 트렁크에서 생성됩니다.
그러나 현실 세계에서 프로젝트 구조는 다양한 Visual Studio 솔루션간에 많은 Visual Studio 프로젝트를 공유하기 때문에 그렇게 간단하지 않습니다. 각각 Fundamental
및 Components.ExternalLibraries
폴더에있을 것입니다
/trunk
/CandyLand
/Candy.Web.Pages
/Candy.Web.Services
/Candy.Tests
/LollyApp
/Lolly.App.WinForm
/Lolly.App.Services
/Lolly.Tests
/Fundamental
/Fundamental.BusinessObjects
/Fundamental.DataAccess
/Components.ExternalLibraries
/Subsonic-2.2
/Moq-3.1
/Lucene.NET-2.0
어디 예에서이 개 제품
Candy
및
Lolly
및 공유 구성 요소 (비주얼 스튜디오 프로젝트, DLL을)이 있습니다 : 저장소는 더 많은 것 같습니다. 이동
+ CandyLand
+ Candy.Web.Pages
+ Candy.Web.Services
+ Candy.Tests
+ Fundamental.BusinessObjects
+ Fundamental.DataAccess
+ Subsonic-2.2
+ Moq-3.1
: 같은
하면 솔루션 구조 뭔가를 보일 수 있습니다, 나는 그 저장소에서 파일뿐만 아니라 필수 구성 요소를 체크 아웃 할 필요가 CandyLand
비주얼 스튜디오 솔루션에서 작동하기 위해 트렁크를 작업 가정 체크 아웃과 네스트 폴더를 함께 사용하면 약간 짜증나게됩니다. 우리는 배치 스크립트를 사용하여이 작업을 수행합니다.
문제는 나는 그것이 불가능 사용자 분기는 분기 솔루션의 프로젝트가 아닌 공유 프로젝트를 포함 이러한 상황에서 분기하는 발견했다.
태그 지정과 동일하므로 제품 솔루션의 개정판 스냅 샷과 해당 공유 구성 요소를 모두 포함하는 태그를 만들 수 없습니다.
.
잘못된 방향으로 가고 있습니까? 이 저장소를 관리하기가 너무 어렵게 만들었습니까?
왜 그냥 일반적인 루트로'/ trunk' (CandyLand, LollyApp, ...) 아래에있는 모든 폴더를 이동할 수 없습니다 ('/ 트렁크/캔디)? 그런 다음'/ trunk/Candy'를 브랜치/태그하고 공유 프로젝트와 라이브러리를 포함하는 브랜치/태그를 생성 할 수 있습니다. – bzlm