2010-02-04 7 views
1

현재 자신의 특정 분기/일반 핵심 프로젝트의 확장 인 프로젝트 모음을 사용하고 있으며 프로젝트 공동 작업 방식을 관리 할 방법을 찾고 있습니다. .하나의 프로젝트를 확장하는 여러 프로젝트의 버전 관리

나는 다음 내용이 다소 모호하다는 것을 이해하며, 단일 프로젝트의 기본 요구 사항을 벗어나는 버전 제어에 대해서만 약간의 경험이 있습니다. 제가 찾고있는 것은 누군가 전에 이런 식으로 우연히 만난 적이 있다면 어떻게 될까요? (즉, 어떤 기술/기능이 활용 되었는가 또는 단순히 우수 사례를 창안하는 문제 였는지)

나는 SVN을 완전히 없애고 다른 곳으로 이동할 수있는 행운의 위치에있다. .

우리는이

  • 업데이트를받는 핵심 전복 소스 트리 (일반 나무).
  • 최종 제품을 생성하기 위해 파일을 사용하고 기존 파일을 수정하고 코어 소스 트리에 새 파일을 추가 할 도메인 특정 서브 버전 소스 트리.

우리의 프로세스의 핵심 소스 트리에서

  • 변경 수동으로 도메인에 포함되는 특정 나무
  • 때때로 도메인의 변경 특정 나무가있을만큼/좋은 "일반"간주됩니다 핵심 트리 (및 결국 다른 모든 도메인 특정 트리)에 다시 통합 됨

  • 각 도메인 특정 나무가 핵심 트리의 특정 버전에 구축 할 수 있도록 할 수있는 기술 (또는 기술) (즉 빌드 프로세스가 특정 코어 버전을 잡고 모든 도메인을 적용 할 것입니다 싶습니다
  • 각 도메인의 특정 트리가 빌드 할 코어의 특정 버전을 변경할 수있게합니다 (빌드 오류가 발생할 수 있지만 변경 프로세스가 비교적 간단해야합니다. 사용하기 쉽다).
  • 변경 사항을 코어 저장소로 다시 제공하는 도메인 특정 트리를 제공하는 방법을 제공하십시오.
  • 일반 코어 트리는 오픈 소스이지만 도메인 특정 트리는 그렇지 않기 때문에 최종 솔루션의 일부 부분에 액세스 제어 기능이 있어야합니다.

미리 도움을 청하십시오.

답변

1

나는 그들을 버전 제어 시스템에서 별도의 프로젝트로 취급 할 것입니다.

그런 다음 Ant와 같은 빌드 시스템을 사용하여 도메인 관련 프로젝트를 빌드하십시오. 빌드 스크립트에서 코어 프로젝트의 특정 리비전 또는 태그를 내보내 도메인 특정 프로젝트의 디렉토리에 배치하십시오. (디렉토리는 버전 제어에서 제외되어야합니다.)

또는 도메인 관련 프로젝트를 체크 아웃 할 때마다 SVN이 핵심 프로젝트의 버전을 자동으로 체크하도록 svn : externals를 사용할 수 있습니다.

+0

원래 svn : externals를 사용하여 생각했지만 핵심 프로젝트의 파일을 수정하는 도메인 특정 프로젝트를 다루는 좋은 방법을 생각할 수 없었습니다. 예를 들어 사용자가 도메인 특정 작업 복사본 (잘못된 기능을 추가하기 위해)의 핵심 프로젝트 소스 파일을 수정 한 경우 소스 파일이 외부 핵심 프로젝트 소스의 소스 파일 인 경우 해당 변경 사항을 해당 도메인의 특정 트리에 유지할 수 있습니다. 파일? –

+0

핵심 프로젝트를 수정하는 도메인 관련 프로젝트에 대해 정확히 무엇을 의미하는지 확신 할 수 없습니다. 코어 프로젝트의 다른 버전이 필요한 경우 브랜칭을 처리하고 분기를 동기화 상태로 유지해야합니다. DS 프로젝트가 클래스를 확장하도록하면 쉽게 피할 수 있습니다. 코어 프로젝트를 대체하는 대신 –

+0

또는 쉽게 자동화 된 변경 사항 인 경우 위의 Ant 접근 방식을 사용할 수 있습니다. 코어 프로젝트의 내 보낸 복사본이 있으므로 Ant 스크립트가 일부 파일을 변경할 수 있으므로 변경 사항을 커밋하지 않아도됩니다. –

관련 문제