우리는 작은 ISV 상점이며 일반적으로 매달 새로운 버전의 제품을 배송합니다. 우리는 Subversion을 코드 저장소로, Visual Studio 2010을 IDE로 사용합니다. 많은 사람들이 Mercurial 및 기타 분산 소스 제어 시스템을 옹호하고 있음을 알고 있지만 현재로서는 이러한 이점을 어떻게 활용할 수 있는지 알지 못하지만 잘못되었을 수 있습니다.
우리의 주요 문제는 가지와 기본 트렁크를 동기화하는 방법입니다.
오늘 우리가하는 일은 다음과 같습니다.
- 새 버전 출시 (Subversion에서 자동으로 태그 생성)
- 다음 달에 출시 될 메인 트렁크에 대한 작업을 계속하십시오
그리고주기는 매달 반복되며 완벽하게 작동합니다. 긴급 서비스 릴리스를 해제해야 할 때 문제가 발생합니다. 우리는 주 개발 트렁크 (2)가 심하게 개발되어 긴급하게 풀릴만큼 안정적이지 않기 때문에 주 트렁크에서 분리 할 수 없습니다.
이 경우 다음을 수행합니다.
- 1 단계에서 만든 태그에서 분기를 만듭니다.
- 버그 수정
- 테스트 및 출시
- 변경 사항을 기본 트렁크로 다시 푸시하십시오 (해당되는 경우).
우리의 가장 큰 문제는이 두 가지 (메인과 브랜치)를 병합하는 것입니다. 대부분의 경우 다음과 같은 이유로 자동 병합에 의존 할 수 없습니다.
- 주요 트렁크에 많은 변화가있었습니다
- 복잡한 파일 (Visual Studio XML 파일 등)을 병합하면 제대로 작동하지 않습니다.
- 다른 개발자 / 팀이 이해하지 못하는 변경을가했으며 병합 할 수는 없습니다.
따라서 두 가지 버전 (분기 및 기본)을 동기화하는 것이 가장 좋습니다. 너 뭐하니?