2008-10-16 6 views
3

현재 소스 코드를 관리하기 위해 서브 버전을 사용하고 있으며 클라이언트를 위해 일하고있는 소프트웨어에 브랜드를 지정해야합니다. 모든 브랜딩은 프로젝트 리소스에서 처리되므로 클라이언트의 모양을 변경하는 것은 매우 간단합니다. 내가 겪고있는 문제는 소스 저장소에 소프트웨어의 브랜드 버전을 유지하는 것입니다. 지금은 별개의 지점이지만 트렁크에서 브랜치 브랜치로 변경 사항을 병합하려고 할 때 브랜딩 된 리소스 파일을 행복하게 덮어 씁니다.버전 관리에서 브랜드 소프트웨어 관리

이러한 차이점을 유지하면서도 트렁크 빌드 또는 사용자 정의 리소스 파일을 사용하여 빌드를 빌드하는 데 필요한 모든 것을 쉽게 체크 아웃 할 수있는 좋은 방법은 무엇입니까?

답변

0

브랜딩은 프로젝트의 핵심 부분이 자식 (또는 프로젝트 상속 모델에 따라 종속성) 인 최상위 프로젝트 여야합니다. Subversion에서는 외부 제품을 사용하여 최상위 제품에 핵심 제품 소스 코드를 포함 시키거나 핵심 제품을 빌드하고 최상위 프로젝트를 사용하여 최종 "어셈블리"를 만들 수 있습니다.

+0

실제로, 그는 : "현재 Subversion을 사용하고있다" – warren

+0

예 ... 나는 완전히 그것을 놓쳤다. 바로 편집해야했다;) –

1

상표가있는 relaease를 바닐라 가지를 외부로 사용하는 별도의 repo로 만들 수 있습니다.

다른 방법으로 모든 것을 단일 분기에 보관하고 빌드 프로세스에서 사용할 브랜딩 관련 파일을 선택하는 작업을 수행 할 수 있습니다.

1

브랜딩을 핵심 기술에 대한 래퍼로 유지해야합니다. 다른 모든 프로젝트에서이를 수행 한 방식입니다.

그러나 처음부터 프로젝트에 대해 생각하지 않았다면 모든 것을 리팩토링하는 데 1 ~ 2 주가 소요될 수 있습니다.

이상적으로 지점은 필요하지 않지만 어쨌든 좋은 엔지니어링 개념 만 있으면 고객의 코드 안정성을 보호하는 데 적합합니다. 언급 한 바와 같이 브랜딩은 일종의 패키징을 사용하여 컴파일 타임이나 런타임에서 수행 할 수 있어야합니다.

0

글쎄, 커밋 범위를 병합하는 병합 집합을 사용하거나 브랜치 루트의 별도 디렉터리에 브랜딩 된 리소스 파일을 유지할 수 있습니까? 그런 다음 병합 할 때 브랜딩 디렉토리를 제외한 루트 디렉토리를 선택하십시오.

저는 커밋 범위를 병합하는 것이 좋으며, 그로 인해 분기에서 새로운 작업을 피할 수 있습니다. 그러나 모든 것을 병합해야하는 경우 프로젝트를 하위 디렉토리 (예 : "소스")로 이동하고 브랜딩을 두 번째 하위 디렉토리로 이동할 수 있습니다. 그런 다음 이클립스 또는 무엇이든간에 trunk/source에서 branch/source로 병합하도록 선택할 수 있습니다.

:

이 :
/SVN/PROJ/트렁크/A
/SVN/PROJ/트렁크/B
/SVN/PROJ/트렁크/C
/SVN/PROJ/트렁크/D/E/F/

브랜딩해진다이 :
/SVN/PROJ/트렁크/소스/A
/SVN/PROJ/트렁크/소스/B
/SVN/PROJ/트렁크/소스/C

,210

/SVN/PROJ/분기/브랜드
/SVN/PROJ/분기/소스/A
/SVN/PROJ/분기/소스/B
/SVN/PROJ/분기/소스/C

관련 문제