2014-10-11 1 views
0

현재 단일 제품을 구성하는 소프트웨어 및 하드웨어 모듈의 버전 제어를 위해 SVN을 사용하고 있습니다. 이를 위해 우리는 다음과 같은 구조를 (최소한의 예)와 함께 올라와있다 :여러 모듈로 구성된 제품 버전을 자식으로 관리

modules/ 
    | 
    |- PCB Design 
    | |- tags 
    | | |- 0.1 
    | | |- 0.2 
    | | \- 0.3 
    | |- branches 
    | \- trunk 
    |- VHDL 
    | |- tags 
    | | |- 0.1 
    | | |- 0.2 
    | | \- 0.3 
    | |- branches 
    | \- trunk 
    \- Firmware 
     |- tags 
     | |- 0.1 
     | |- 0.2 
     | \- 0.3 
     |- branches 
     \- trunk 

products/ 
    | 
    |- Variant A 
    | |- V1 
    | \- V2 
    | 
    \- Variant B 
     |- V1 
     |- V2 
     \- V3 

이 아이디어는 예입니다 '변형 A/V2'는 여러 모듈의 버전 모음을 나타냅니다 (예 : PCB v0.3, VHDL v0.2 및 펌웨어 v0.3).

svn cp modules/PCB Design/0.3 products/Variant A/V2 
svn cp modules/VHDL/0.2 products/Variant A/V2 
svn cp modules/Firmware/0.3 products/Variant A/V2 

실제 개발 전용 "모듈"에, "제품"내부에서 발생하지 않을 것입니다 : 모든 (라벨, 가지) 디렉토리이기 때문에 SVN으로, 이것은 전복의 얕은 복사 동작을 사용하여 수행 할 수 있습니다 .

그러나이 작업 방식은 SVN 지향적이며, 우리는 git에서 비슷한 것을 찾고 있습니다. 나는 서브 모듈을 체크 아웃했으나 대부분이 문제를 해결하지 못하도록 경고하는 서브 트리를 사용했다.

이와 비슷한 것을 복제 할 수있는 다른 방법이 있습니까?

답변

2

특별한 경우에 PCB/VHDL/펌웨어에 저장된 변경 사항은 모두 서로 완전히 독립적이며 해당 리포지토리에서 작업하는 사람들의 그룹도 모두 고유하다고 가정합니다.

그렇다면 일반적으로 서브 모듈이 당신만큼 좋지 않을 것이라고 추측 할 수 있습니다. (게다가, 서브 모듈 지원은 수년 동안 훨씬 나아졌습니다. 오래된 구현, 이는 분명히 가난했다).

귀하의 ASIC 엔지니어는 VHDL 레포에서 단일 레포로 작업하고 있으며 서브 모듈에 대해 전혀 알 필요가 없습니다.

PCB 리포에서 직접 PCB 레이아웃을 수행하는 EE와 동일합니다.

그리고 소프트웨어 엔지니어가 펌웨어 레포에서 작업을 수행합니다.

실제로 릴리스를 해당 모듈 3 개를 모아서 태그 지정하기위한 수퍼 프로젝트 (모든 모듈을 서브 모듈로 사용) 만 있으면 프로젝트 관리자 만 사용해야합니다.

관련 문제