문제

더 나은 무엇입니까?

A:

server:1080/repo/projectA/trunk/...
                          branches/branch1
                          branches/branch2
                          branches/branch3
                          tags/tag1/...
                          tags/tag2/...
server:1080/repo/projectB/trunk/...
                          branches/branch1
                          branches/branch2
                          branches/branch3
                          tags/tag1/...
                          tags/tag2/...

B:

server:1080/repo/trunk/projectA/...
                 branches/projectA/branch1
                 branches/projectA/branch2
                 branches/projectA/branch3
                 tags/projectA/tag1/...
                 tags/projectA/tag2/...
server:1080/repo/trunk/projectB/trunk/...
                 branches/projectB/branch1
                 branches/projectB/branch2
                 branches/projectB/branch3
                 tags/projectB/tag1/...
                 tags/projectB/tag2/...

What 저장소 구조를 할 당신이 사용하는 이유는?

도움이 되었습니까?

해결책

그만큼 저장소 관리 의장 SVN 책 섹션을 포함합니다 저장소 조직 계획 다른 전략과 그 의미를 설명합니다 분기 및 병합에 대한 저장소 레이아웃의 의미.

다른 팁

우리는 A를 사용합니다. 다른 하나는 우리에게 이해가되지 않았기 때문입니다. SVN과 관련하여 "프로젝트"는 반드시 단일 프로젝트 일 필요는 없지만 함께 속한 여러 프로젝트 일 수 있습니다 (즉, Visual Studio에서 솔루션에 넣을 것). 이렇게하면 관련 그룹이 함께 그룹화되어 있습니다. 모든 지점, 태그 및 특정 프로젝트의 트렁크. 나에게 완벽하게 이해됩니다.

다른 프로젝트의 지점은 모두 분야를 제외하고는 공통점이 없기 때문에 Branch/Tag로 그룹화하는 것은 나에게 의미가 없습니다.

그러나 결국 사람들은 두 가지 방법을 사용합니다. 당신이 좋아하는 일을하십시오. 그러나 당신이 결정했을 때, 그것과 함께 머물려고 노력하십시오 :)

추가 : 고객 당 별도의 저장소가 있습니다. 즉, 고객을위한 모든 프로젝트는 동일한 저장소에 있습니다. 이렇게하면 예를 들어 단일 고객을 한 번에 백업하거나 SVN과 싸우지 않고 고객이 소유 한 모든 소스 코드를 제공 할 수 있습니다.

이 좋 C 옵션:

server:1080/projectA/trunk/...
                     branches/branch1
                     branches/branch2
                     branches/branch3
                     tags/tag1/...
                     tags/tag2/...
server:1080/projectB/trunk/...
                     branches/branch1
                     branches/branch2
                     branches/branch3
                     tags/tag1/...
                     tags/tag2/...

해 보세요 별도의 프로젝트에서는 별도의 저장소가 여기에 해당합니다.용 svn:외부 부품 을 쉽게 관리할 수 있는 코드 라이브러리 프로젝트가 공유하는 사이에 두 개 이상 응용 프로그램 프로젝트입니다.

우리는 설정 B를 사용합니다. SVN 1.5에서는 드문 드문 결제를 통해 가능하지만 1 번의 클릭 작업은 아닙니다. 일부 프로젝트에 숨겨진 종속성이있는 경우 B 설정 B를 사용하려고합니다.

우리는 사용

/repos/projectA/component1/trunk - branches - tags
/repos/projectA/component2/trunk - branches - tags
/repos/projectB/component3/trunk - branches - tags
/repos/projectB/component4/trunk - branches - tags

후회하기 시작했습니다. 더 평평해야합니다. 이것은 더 나을 것입니다.

/repos/projectA/trunk - branches - tags
/repos/projectB/trunk - branches - tags
/repos/component1/trunk - branches - tags
/repos/component2/trunk - branches - tags
/repos/component3/trunk - branches - tags
/repos/component4/trunk - branches - tags

왜요? 제품 (구성 요소, 완성 된 소프트웨어)은 영원히 지속됩니다. 프로젝트가왔다 갔다. 작년에 제품 quux를 만드는 프로젝트 팀이 하나뿐입니다. 내년 에이 팀은 분산되어 있고 한두 명의 사람들이 퀴즈를 유지합니다. 내년에는 두 개의 큰 Quux 확장 프로젝트가있을 것입니다.

타임 라인을 감안할 때 Quux는 3 개의 프로젝트 리포지토리에 나타나야합니까? 아니요, Quux는 특정 프로젝트와 무관합니다. 프로젝트에는 작업을 수행하는 데있어 작업 제품 (문서, 백 로그 등)이 있지만 작업의 실제 목표는 아닙니다. 따라서 해당 자료에 대한 "ProjectX"저장소 - 프로젝트가 완료된 후 아무도 신경 쓰지 않을 것입니다.

나는 3 개의 팀이있는 하나의 제품에서 일했습니다. 각 프로젝트가 독립적으로 저장소를 관리했기 때문에 작업 조정에 큰 문제가 있습니다. 팀 간 릴리스와 팀 간 조정이있었습니다. 그때는 하루가 끝나면 소프트웨어 한 조각이되었습니다. 그러나, 당신이 생각할 수 있듯이, 그것은 이상한 겹치고 중복성이있는 세 가지 소프트웨어였습니다.

개인적으로 나는 다음과 같은 저장소 구조를 사용합니다.

/project
    /trunk
    /tags
        /builds
            /PA
            /A
            /B
        /releases
            /AR
            /BR
            /RC
            /ST
    /branches
        /experimental
        /maintenance
            /versions
            /platforms
        /releases

또 한있다 도표 해당 디렉토리가 어떻게 사용되는지 설명합니다. 또한 내가 사용하는 특정 버전 번호 접근 방식이 있습니다. 저장소 구조에 중요한 역할을합니다. 최근에는 버전 번호 연결 방식을 설명하는 소프트웨어 구성 관리 전용 교육을 개발 했으며이 저장소 구조가 정확히 가장 좋은 이유를 설명했습니다. 여기에 있습니다 프레젠테이션 슬라이드.

내도 있습니다 대답의문 '다중 SVN 리포지토리 대 단일 회사 저장소'정보. 질문에서 저장소 구조 의이 측면을 다루는 한 도움이 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top