2012-06-13 4 views
1

새 버전을 릴리스 할 때 시점 분기점을 만들어야합니다.Mercurial : 버전 별 분기 방법

그래서 모든 개발에 대해 기본 분기가 있고 서버에 새로운 릴리스가있을 때마다 V1, V2 등의 분기가 있습니다.

그래서 기본 개발 분기가있는 경우. V1이 라이브 서버에 있습니다. V2가 테스트 서버에 있습니다.

어떻게 다음과 같은 시나리오 처리하나요 : 버그가 V1에서 발견된다

  • , 그리고 변화는 V1, V2 및 기본에 갈 필요가?

  • V2는 특정 시점에 만들어졌으며 테스트 서버로 이동합니다. 개발은 여러 기능을 기본적으로 계속 사용합니다. V2 테스트를 마친 후 기능이 완료되지 않았고 일부 변경 집합이 기본값으로 병합되어야 V2에 포함될 수 있지만 모든 변경 집합이 병합되지는 않습니다.

답변

5

일반적인 방법은 (V1의 분기점 이전에) 버그를 도입 한 변경 집합을 찾고 해당 변경 집합의 자식으로 수정을 적용하는 것입니다. 그러면 새로운 머리가 생기고, 수정을 원하는 지점 (이 경우 V1, V2 및 기본값)으로 병합 할 수 있습니다.

이 방법을 "daggy fixes"이라고합니다.

또는 한 브랜치 (예 : 기본값)에서 수정 한 다음 graft 명령을 사용하여 다른 브랜치로 체리를 선택할 수도 있습니다. 그러나 변경 세트가 세 번 나타나고 두 개 분기를 다시 병합하면 병합 문제가 발생할 수 있으므로 좋지 않습니다.

관련 문제