2009-06-16 6 views
0

내가 같은 repositry 레이아웃을 말해봐 다음 나는 각기 다른 섹션에 일을하고있는 경우를 분기 할 수 있도록이 같은 그들을 분할

이제
|Root 
    |->CommonLib 
    |->ProjectA.PartA 
     |->trunk 
      |->lib 
      |->src 
      //etc 
    |->ProjectA.PartB 
     |->trunk 
      |->lib 
      |->src 
    //About four more projects. 

나는해야한다.

ProjectA.PartA는 ProjectA.PartB를 참조로 사용합니다.

이렇게 구성하기 전에 모든 프로젝트 트렁크가 하나의 src 폴더에 있고 그 폴더를 아래로 당긴 다음 솔루션을 프로젝트에 추가하고 프로젝트 참조를 추가합니다.

같은 폴더에있는 모든 위치에서 제대로 작동하지만 잘 수행되지 않을 수 있으며 폴더 체크 아웃 구조가 동일해야하거나 종속성이 깨지게됩니다.

내 생각은 각 프로젝트를 빌드하고 루트의 CommonLib 폴더에 바이너리를 저장할 때마다 각 프로젝트에서 svn : externals를 사용하여 CommonLib 폴더의 종속성을 lib 폴더로 풀고 참조를 추가합니다. 오히려 프로젝트 그 자체.

위의 해결 방법이 프로젝트 참조를 추가하는 것이 더 좋을까요?

내부 프로젝트 참조가있는 경우 일반적인 관행은 무엇입니까?

그들은 모두 같은 "목표"의 일부인 경우에만 모든 프로젝트 폴더에 종속물을 소스로 끌어 내려는 외부 객체를 설정해야합니까?

감사합니다.

+0

PartA와 partB는 같은 프로젝트의 일부일 뿐이며, 다른 프로젝트와도 공유 할 가능성이있다. –

+0

예, DAL 하나는 컨트롤러이고 다른 하나는 UI 및 기타 레이어와 같은 것들입니다. –

답변

2

SVN 복사본이 저렴하고 SVN 병합이 쉽습니다. 그래서 저는 하나의 루트 솔루션을 고수하고 서로 프로젝트를 참조하게하십시오. 필요한 경우 전체를 분기 한 다음 다시 통합하십시오.

1

보통 각 솔루션에서 라이브러리 자체보다는 외부를 사용하여 프로젝트를 참조합니다. 이 경우 회귀 테스트를 위해 각 프로젝트에서 단위 테스트를하는 것이 매우 중요합니다.

바이너리를 저장하고 외부와 참조하는 것이 좋습니다 (그리고 아마도 더 안전 할 것입니다). 만약 내가 그렇게한다면, 나는 의존성 이진의 각 버전에 태그를 붙이고이를 참조 할 것이다. 업그레이드를 원할 경우 새 태그를 사용하도록 외부를 변경합니다. 이렇게하면 라이브러리를보다 안전하게 업그레이드 할 수 있습니다.

편집 : 나는 단지 당신이 같은 프로젝트의 두 부분으로 나뉘어 있다는 것을 깨달았습니다. 위의 대답은 여러 프로젝트의 공유 라이브러리에 대한 것입니다. 나는 와이엇이 말한 것과 똑같은 몸매를 유지할 것이라고 말했다.