2012-06-27 2 views
1

master에 코드가 있습니다. 새로운 기능을 가진 새로운 브랜치로 새로운 애플리케이션을 만들어야하는데, 이는 이미 마스터에있는 것과 유사합니다. 또한 수시로 마스터에서 새 지점으로 변경 사항을 병합해야합니다.중복 코드 대 쉬운 병합

내가 시도한 다음 방법 : 그들은 비슷한 기능을 가지고 +

  • 코드
에게이 중복이야 자식 병합 마스터에 문제가 없습니다에도 불구하고

  1. 은 별도로 새로운 클래스 만들기
  2. 일반적인 기능에 대한 추상 클래스를 만든 다음 이전 마스터 클래스와 새 분기 클래스 + 중복이 없음 c 송시 자식 병합 마스터 영구 문제가있다
  3. 그것은 # 2의 수정이다 - 지점을 마스터 추상 클래스를 이동 -이 위의 문제 만
    • 불필요한 (추상화) 코드 마스터
    • 에있어 언급 해결

그래서 방법이 바람직하다? 또는 올바른 (다른) 솔루션이 있습니까?

업데이트 :
# 3.

답변

2

이상적인 솔루션은 submodule의 추상 클래스를 분리하고, 부모의 repo (마스터와 하나하고 새 응용 프로그램 분기) 사용이 서브 모듈 말했다 수 있도록하는 것입니다.
하위 모듈 (별도의 자식 리포 자체)이있는 하위 디렉토리에서 공통 클래스를 찾습니다.

그런 식으로, 당신은 별도의 유지 : 마스터와 응용 프로그램 사이의

  • 병합을
  • 일반적인 클래스의 진화는 (주 REPO에 서브 모듈로 가져 오기, 자신의 자식의 repo에서 수행)
+0

일반 (추상) 클래스를 마스터 분기 (# 3)에 보관하지 않고 서브 모듈로 옮기는 이점은 무엇입니까? –

+0

@ M.Y. 그 안정적인 API 세트와 관련된 히스토리는 자체 repo에서 격리되어 해당 하위 모듈의 정확한 시점 (태그 또는 SHA1)을 참조하고 태그 (V1, V2, V3 등 ...)를 분리 할 수 ​​있습니다.)을 하위 모듈에 설정할 태그에서 제외하면 앱 V4.3은 V2.1의 공통 API 인 두 가지 개발주기 (development lifecycles)를 사용할 수 있습니다. – VonC