2010-03-26 4 views
0

Lite Edition과 Enterprise Edition이있는 상용 소프트웨어를 사용자 정의하고 싶습니다. 기능이 거의 동일하여 확장 된 사용자 정의가 두 가지 모두에 대해 작동 할 수 있지만 서로 다른 버전 어셈블리가 있으므로 각 버전마다 다시 컴파일해야합니다.코드 분기를 통해 소프트웨어 버전을 관리하는 최선의 방법은 무엇입니까?

누군가 유지 관리 방법에 대해 조언 해 줄 수 있습니까? Visual Studio 2008과 Visual SVN을 사용하고 있습니다. 완전히 다른 2 개의 솔루션을 만들거나 중복 된 프로젝트로 하나의 솔루션을 만들거나 분기를 만들어야합니까? 브랜치는 우아한 경로처럼 보이지만 그 아이디어는 무엇입니까? 트렁크에서 "라이트 버전"과 "엔터프라이즈 버전"을 만듭니다 ... 트렁크가 "라이트 버전"이됩니까?

+1

이 질문은 대부분 의견을 기반으로합니다. 다른 질문에 대한 사람들의 대답을 받아들이면 사람들이 자신의 견해를 나눌 수있는 더 좋은 시간을 가질 수 있습니다. 6 개의 다른 질문과 당신은 대답을 받아 들여서는 안됩니다 ... –

+0

미안하지만, 그것이 작동하는 방법을 깨닫지 못했습니다. 나는 나의 다른 질문을 받아 들일 것이다. 머리를 주셔서 감사합니다! – TruMan1

+0

그건 그렇고 .. 의견은 괜찮아요. 나는 조언, 제안 및 경험을 찾고있다. – TruMan1

답변

0

두 코드 사이의 코드 차이에 따라 다릅니다. 가장 좋은 경우, 단순히 다른 어셈블리 버전에 연결하는 문제라면 NAnt 또는 유사한 것을 사용하고 각각에 대해 빌드 대상을 작성하면됩니다.

인생이 그다지 유토피아 적이 아니면 모든 공통 코드를 포함하는 하나의 클래스 라이브러리와 공유되지 않은 코드 만 포함하는 버전마다 다른 클래스 라이브러리를 만듭니다.

공유 코드가 이러한 다중 버전 어셈블리에 종속되어 있다면, 내가 알 수있는 한 수동으로 작업하는 것이 더 많거나 적게 걸릴 수 있습니다. 즉, 목표 지점을 유지하고 공유 조각을 동기화 상태로 유지하기 위해 정기적 인 병합을 수행하는 것을 의미합니다. 분산 CMS를 사용하면 병합의 어려움이 줄어들고 단위 테스트 용 배터리를 만들면 이러한 프로젝트 간 병합이 도입하는 오류의 양을 줄일 수 있습니다.

관련 문제