2013-05-14 1 views
0

기본적으로 나는 구조가 같은 저장소를 가지고있다 :
A (브랜치 : 안정) -> B (브랜치 : dev) -> C (브랜치 : 개발자, 북마크 : 기능) 비슷한 형제)머큐리얼 브랜칭 - 북마크 브랜치 간의 변경

C 형제 중 하나 (예 : - E)에서 다른 모든 북마크 브랜치와 공유하고 싶은 몇 가지 사항을 변경했습니다. 어떻게 제대로 할 수 있습니까? 나는 E를 B와 합친 다음, 새로운 커밋에서 다른 책갈피 - 브랜치 (C의 형제)에 합병하려고 생각했다. 그러나 Hg는 E를 B와 병합하려고 할 때 "아무 것도 병합하지 않는다"라는 오류를 던진다.
If E를 A와 병합 해 봅니다. Hg가 잘 처리하고, 똑같은 작업을 수행해야하지만, 단일 명명 된 브랜치 (여기서는 -dev) 안에 있습니다.

어떻게하면 필요한 효과를 제대로 얻을 수 있습니까?

답변

0

E는 B와 동일한 분기에서 직접 자손이므로 (중간에 병합하지 않기 때문에) E와 B를 병합 할 수 없습니다. hg bookmark B -r E을 사용하면 B의 책갈피를 E로 이동할 수 있습니다. 이는 본질적으로 병합이 수행하는 작업입니다. 그 후에, 당신이 활성화하고 싶은 북마크를 설정해야한다. 우연히 B가 현재의 머리와 뒤에 붙어있는 것을 추적해야한다. 그런 다음 C의 다른 형제들을 병합 할 수 있습니다. 물론

, 당신은 단지 병합 할 경우, 당신은 직접 E의 변경에 병합 할 수 있습니다 : 서로 다른 지점에있어 때문에에

hg update C# or other siblings 
hg merge B 
hg commit -m'Merged in changes from B' 

병합 E 작동합니다.