Subversion에서 하나의 브랜치에서만 작업한다면 귀찮게해야합니까? 트렁크에서 속도를 높이기 위해 일할 수는 없습니까?
Subversion으로 개발하는 방법은 다음과 같습니다.
- 트렁크가있다
- 우리는 새로운 개발 지점을 만듭니다
- 해당 지점에서 새로운 기능을 개발합니다
- 기능이 완료되면 기능이 트렁크에 병합되고 분기가 제거되고 트렁크에서 새 개발 분기가 작성됩니다.
프로덕션으로 출시하려면 트렁크에서 태그를 만듭니다. 버그 수정은 해당 태그의 브랜치에서 이루어집니다. 그런 다음이 버그 수정이 트렁크에 병합됩니다.
이것이 기능이 완료된 후 새로운 개발 브랜치를 만드는 이유입니다. 이런 식으로 버그 수정이 새로운 코드에 곧 포함됩니다.
아래는 명확히해야 할 다이어그램입니다.
이제 이것이 가장 효율적인 작업 방법이 아니라는 느낌이 듭니다. 커밋하기 전에 로컬로 빌드하는데 약 5-10 분이 걸립니다. 대기 시간이 상당히 길다는 것을 이해할 수 있습니다.
개발 브랜치의 아이디어는 트렁크가 항상 릴리스 가능하다는 것입니다. 그러나 이것은 우리의 상황에서 더 이상 사실이 아닙니다. 때로는 기능이 거의 준비되어 있고 일부 개발자는 이미 다음 기능을 코딩하기 시작합니다 (그렇지 않으면 한두 명의 개발자가 완료하고 병합하기를 기다리는 중입니다).
그런 다음 기능 1이 완료되면 기능이 트렁크에 병합되지만 기능 2의 커밋이 포함됩니다.
그렇다면 지점이 하나뿐이므로 개발 지점을 귀찮게해야합니까? 트렁크 기반 개발 및 분기 별 개요에 대해 읽었지만 대부분의 기사에서는 분기 별 요약 부분에 중점을 두었습니다. 여러 릴리스에 걸쳐 큰 변화가있을 것이라는 인상을 받았습니다. 이것은 우리가 가진 문제가 아닙니다.
어떻게 생각해? 트렁크 작업 만해도 되나요? 최악의 시나리오는 일부 커밋 / 기능이 아직 생산 준비가되어 있지 않기 때문에 트렁크에서 태그를 만들고 필요한 커밋을 체리 선택해야한다고 생각합니다.