'SCM/Mercurial'에 해당되는 글 1건

  1. 2010.08.11 mercurial 에서 head 가 3개 이상 되었을때 merge 하기!
스칼라 스터디에서 예제 및 연습문제의 소스 공유, 관리를 위해 bitbucket 서비스에서 mercurial 을 사용 중이다.

bitbucket 리파지토리에서 최신 리비전을 받기위해서 pull 을 했더니 로컬 리파지토리에 3개의 head 가 생겨버렸다.
안내대로 merge 를 시도했지만 수행되지 않고 이해가 잘 되지 않는 문구를 뿜어낸다;;

abort: branch 'default' has 3 heads - please merge with an explicit rev
(run 'hg heads .' to see heads)


r55 가 현재 로컬 리파지토리에서 진행되던 가지이고, 리모트 리파지토리에서 2개의 head(r60, r61) 가 진행중인 상태이다.

머큐리얼 사이트를 통해서 이리저리 알아본 결과 다음과 같은 순서로 진행되어야 한다고 한다.

1. 현재 branch 닫기.
2. 순차적인 head merge


branches, branch 명령어를 통해서 현재 branch 확인하고 commit(ci) 명령어의 "--close-branch" 옵션을 통해서 branch 를 닫는다. 화면에서는 r61 이 현재 branch 라고 나오는데 실제 닫히는건 r55(로컬에서 내가 진행중이던 branch)가 닫힌다.

branch 를 닫은 후 남은 r60, r61 을 순차적으로 병합한다.


merge 의 rev 옵션을 통해서 r60부터 병합을 시도했다. head 를 자세히 보면 알겠지만 r60이 병합되면서 r63이 생성되었다. 따로 branch 명령을 안 넣어보았지만 아마도 현재 branch 로 지정되어 있을 것으로 예상된다.


남은 r61을 병합하면 head 가 정리된다.
Posted by Arawn Trackback 0 : Comment 0