2009-11-27 2 views
6

대규모 다중 병렬 분기가있는 환경에서 작업합니다. GIT를 보면 다음과 같은 몇 가지 병합 전략이 있음을 알 수 있습니다.머큐리얼은 어떤 병합 전략을 사용합니까?

already up-to-date 
fast-forward 
octopus 
resolve 
recursive 

Mercurial에는 각각 이와 동일한 기능이 있습니까? (즉 의욕의 병합 알고리즘의 구현은 재귀만큼 좋은? 이미

+2

'이미 최신'이고 '빨리 감기'는 병합 전략이 아닙니다. 그렇지만 '우리'와 '하위 트리'가 있습니다. –

+0

또한 관심이 있습니다 : http://kiln.stackexchange.com/questions/2983/what-is-the-algorithm-or-decision-process-used-by-mercurial-during-merge – VonC

답변

9
  • , 내가 처음 일을 생각 최신

그 전략을 병합하지 않는

  • 빨리 감기 (분명히 지원) 병합 아무것도 할 때입니다. 두 번째는 HG에 업데이트하는 (병합 아무것도) 빨리 감기에 해당, 병합하지 않습니다.

    • 문어

    수은에 적용되지 않는 경우 병합은 항상 두 개의 머리 사이에 있습니다.

    • 기본의 결의는

    전략을 병합합니다. (git 그냥 병합을 처리하기 위해 외부 도구를 호출처럼, hg)

  • 재귀

    • 은 아마 사용자 정의 병합 스크립트를 수행 할 수 없습니다. 그러나 아무도 지금 당장은 관심이없는 것 같았습니다. 아마도 해결에 비해 많은 개선을 가져 오지 않았기 때문일 것입니다.

    +1

    "빨리 감기"가 아닙니다. 리베이스 : 실제로 현재 브랜치가 병합 된 브랜치의 조상이라는 의미에서 "최신"의 반대입니다. 기본적으로 (즉,'--no-ff' 옵션이 없음) Git은 무의미한 병합 대신 지점 헤드를 진행합니다. –

    +3

    "재귀 적"병합 전략은 십자가 병합 및 하나 이상의 병합 기반이있는 다른 상황을 처리하도록 설계되었으며 이러한 상황에서 이름이 변경되었습니다. –

    +0

    @Jakub, 감사합니다. 빨리 감기에 관한 부분을 업데이트했습니다. 그래서 그것은 수은으로 "업데이트"된 것입니다. 재귀 전략이 실제로 효과가 있습니까? – tonfa

    관련 문제