2013-07-15 2 views
7

우리는 Vincent Driessen에 의해 제안 된 분기 모델을 채택했으며, 그의 article에서 설명한대로 거의 모든 것을 수행합니다.기능 분기를 릴리스 분기로 병합하는 것이 나쁜 생각 인 이유는 무엇입니까?

릴리스 분기를 처리 할 때만 약간 편차가 있습니다.

빈센트 (Vincent)는 현상액에서 분지 된 분지의 특징을 개발할 것을 제안한다. 다음 릴리스에 제공되는 기능이 결정되면 개발자에게 다시 병합되고 이로부터 릴리스 분기가 생성됩니다.

그런 다음 기능 분기는 테스트 및 버그 수정에만 사용해야합니다. 릴리스가 실행되도록 배포되면 릴리스 분기가 개발자와 마스터로 다시 병합됩니다. realease branch modelling

내가이 그것을 수행해야합니다 방법이 아니다 느낌 나는이 실제로 할 수있는 곳의 경우를 생각하기 위해 노력하고있어 :

은 우리가 대신 할 것은 릴리스 브랜치에 직접 기능을 통합하는 것입니다 더 복잡한 일들. 내가 생각할 수있는

하나는 다음

이의이 C 새로운 기능이 이미 릴리스 브랜치에 병합됩니다 기능,에 구축한다고 가정 해 봅시다. 개발자로부터 새로운 기능 c 브랜치를 만들 수 있도록 먼저 개발자에게 릴리즈 브랜치를 다시 병합해야합니다.

이 분기 모델이 상황을 더욱 복잡하게 만들 수있는 다른 경우가 있습니까?

+0

@downvoters 제 질문의 질을 향상시키기 위해 의견을 남겨주세요 :) 제목이 오해 할 소지가 있습니까? – Zounadire

+0

정직하게 말하면, "이 모델로 어떻게 물건을 복잡하게 만들 수 있습니까?" "Java에서 코딩이 잘못 될 수 있습니까?"라고 대답하는 것과 같습니다. 이 모델은 업스트림 대 다운 스트림 커밋과베이스 병합에 대한 가정을 완화하지 않는 한 다소간 괜찮습니다. 그러나 다시, 모든 * 분기 모델에 해당합니다. – Christopher

답변

7

내가 생각할 수있는 한 가지 경우, 이것이 복잡한 일이 될 수있는 곳은 개발이 더 이상 시작되지 않는다는 것입니다.

다음 릴리스에서 즉시 사용할 기능 A를 개발 중이라고 생각하십시오. 이제 기능 A에 크게 의존하는 기능 B를 개발할 다른 개발 팀이 있지만 몇 번의 스프린트 후에 만 ​​릴리스해야합니다. 분명히 피처 A의 피쳐 B를 분기 할 것입니다.

이제 피쳐 A의 버그를 찾고 피쳐 A의 릴리스가 빨리 다가오고 있습니다. 핫 픽스/해킹 또는 적절한 두 가지 옵션이 있습니다 코드를 다시 고려하고 수정하십시오.

시간 제약으로, 그 현명한 수정 프로그램을 가지고 있지만, 미래를 고려할 때 적절한 다시 요소와 수정이 필요합니다.

행복한 소식은 우리가 둘 다 갈 수 있다는 것입니다.

당신의 전략을 (내가 아는 바에 따르면) 릴리즈 브랜치는 A와 같은 것을 커밋 할 수 없기 때문에 모든 패치와 핫 픽스 (5 개 이상의 커밋 포함)를 받게 될 것입니다 정책). 한 번에 10 개 이상의 기능이있는 경우 릴리스에서 발생할 수있는 수정 사항의 수를 고려하십시오.

빈센트 드리 센 (Vincent Driessen)의 전략에는 기능과 릴리스 사이에 숨겨진 것으로 개발 분기가 있기 때문에 이러한 핫픽스의 경우 개발 분기로 다시 병합 한 다음 핫 픽스를 위해 거기에서 분기 한 다음 다시 병합 할 수 있습니다. 개발하고 출시 할 수 있습니다. 그리고 당신은 당신의 지사에서 해킹/핫 픽스를 가지지 않는 이점이 있습니다. 이 기능을 기반으로하는 추가 기능은 계속해서 병렬 처리 할 수 ​​있습니다. 그리고 핫픽스 분기를 포기하거나 기록에서 제거 할 수 있습니다. 이 단 하나의 시점과 아마이 경우 전략을 수비하실 수 있습니다. 나는 더 많은 토론과 정정을 내 대답에 대해 열었습니다.

그리고 여기 제가 전달하는 것을 묘사 한 꽤 고약한 이미지가 있습니다. Git Branching Diagram

+3

멋진 이미지 !!!!! – slebetman