최근 Mercurial에서 릴리스 브랜치를 유지할 때 변경 사항을 건너 뛰는 것에 대해 몇 가지 질문이있었습니다. 예를 들면 :
2.0에서 도입 된 이후 graft
로이 문제를 피하기 위해 사용하는 것이 궁금했습니다 . 다음과 같은 수정 트리가 주어집니다.
A---B---C---D---E---F---G---H---I---J
Evil 변경을 건너 뛰는 릴리스 브랜치를 만들어야한다고 가정합니다 E
.
hg update -r D
hg graft "F::J"
우리에게 :
A---B---C---D---E---F---G---H---I---J
\
--F'--G'--H'--I'--J'
- Q1 : 여기서 무슨 일이 일어 났습니까? 에서
transplant
패치를 생성F::J
한 다음에 적용 했을 것임을 이해할 수D
있지만graft
패치보다는 3 방향 병합을 사용한다고합니다. 그래서 ....... 어떻게 작동합니까? 왜 더 낫습니까?
이제 수정 E
하고 릴리스 브랜치에 병합 한다고 가정하겠습니다 .
--E2-----------------
/ \
A---B---C---D---E---F---G---H---I---J---M1
\ \
--F'--G'--H'--I'--J'---------M2--
M1은 직선 병합입니다. 특별한 것은 없습니다. M2는 "동일한"(또는 적어도 동등한) 변경 사항이있는 분기를 병합합니다.
- Q2 :이 병합은
D
,J'
및M1
? - Q3 : 수은은 합병을 돕기 위해 이식 수술에 대한 추가 정보를 저장 / 사용 했습니까?
그리고 마지막으로...
- Q4 : 이와 같은 흐름의 잠재적 인 문제는 무엇입니까?