나에게 기능별 분기는 "X 기능 팀"에 대해 독립적 인 단위로 지능적으로 말할 수있는 충분한 프로젝트가있는 경우에만 의미가 있습니다.
또한 특정 크기 기준 (분명히 퍼지)이 있습니다. 개발자가 10 명인 경우 1 개의 기능 팀만 있습니다. 두 사람이 항상 "위젯 대화 상대"또는 "데이터베이스 사용자"인지 여부는 중요하지 않습니다. 누군가가 주요 리팩터를 수행하고, API에 대한 급격한 변화를 만들고, 많은 BVT가 실패 할 것으로 예상되는 행동을 변경하는 등의 경우에는 개발 분기가 1을 넘을 필요가 있습니다.하지만 그것은 기능 분지가 아닙니다.
개발자가 100 명인 경우 기능 분기가 필요할 수 있습니다. 그것은 당신의 특징이 얼마나 밀접하게 결합되어 있고 SCM 프로세스가 일반적으로, 특히 빌드 품질과 관련하여 얼마나 조심 스러운가에 달려 있습니다. 지형지 물을 가지지 않는 경우에도 일부 가지의 계층 구조가있을 것입니다.
Windows에서 작업하는 경우 레이어 & 층의 레이어는 신의 선물입니다. 커널 팀이 버그를 발표했기 때문에 쉘 팀이 생산성을 낼 수 없다면 큰 문제가 될 수 있습니다.
물론 균형 조정 조치가 있습니다. 일부 대형 조직에서는 기능 분기를 너무 많이합니다. 기능 팀 X가 축복을받은 코드가 Y 팀을 구성하기까지 몇 달이 걸리기 시작하면 병합 + 통합 테스트의 어려움이 처음에 얻으려고했던 코드베이스 안정성보다 중요합니다.(따라서 "MAIN의 트리의 깊이는 MAIN과 반비례합니다.") 그리고 모든 경우에 N 버전의 트리는 릴리스가 가까워지면서 좁혀 야하며 결국에는 해당 릴리스의 트렁크에 직접 체크인하는 경우에만 축소됩니다. 모든 지형지 물이 N + 1을 효과적으로 타겟팅하고 있습니다.
나는 동의한다. 필자는 다른 사람의 노력 외에는 병렬로 개발되지 않고 완료 될 때까지 병합되지 않는 한 기능 단위별로 분기 지점을 보지 못합니다. 그렇다면 왜이 기능을 개발하지 않고 계속해서 기본 코드베이스에 지속적으로 통합하지 않는 것이 좋을까요? 모든 기능에 대해 이렇게하려면? –
그것은 많은 경우에 완전한 혼란이 될 것이기 때문입니다. –