Mercurial merge 방법에 대해서 알아보겠습니다.
로컬에서 제 작업을 하고 있는 상태입니다. 그리고 hg pull 명령어를 통해서 상용으로부터 최신 코드를 받았습니다.
로컬 커밋은 changeset 5:3ee4804이고 상용으로부터 최신 코드는 tip이라 상황을 가정하겠습니다.
로컬 커밋(5:3ee4804)을 최신 코드(7:7ca57c)로 머지를 시키고 싶은 상황입니다.
현재 위치를 5번을 이동시켜주세요.
그리고 7번으로 병합을 시켜주시면 됩니다.
hg up 5
hg merge -r 7:7ca57c169925
머지를 시켜주시고 나면 각종 충돌이 일어날겁니다. hg diff 명령어를 통해서 소스를 확인하고 소스들을 정리해주세요.
소스들을 정리하고 commit을 하면 다음과 같은 에러가 발생합니다.
abort: unresolved merge conflicts (see 'hg help resolve')
머큐리얼에서는 머지 이후 커밋을 하기 전에 resolve라는 명령어를 사용해서 병합을 잘 해결했다고 알려줍니다.
hg resolve -l 명령어를 통해서 머지 이후 변경된 파일 리스트를 보여줍니다.
리스트 앞에 U는 아직 해결이 안되었고 R은 해결된 파일을 표시해줍니다.
파일을 수정했다면 hg reolve -m [파일명] 명령어로 해결했다고 알려줍니다. (m옵션은 해결이 되었다는 옵션입니다)
마지막으로 커밋을 해주시면 완료 됩니다.
hg resolve -l
hg resolve -m hello.txt
hg commit -m "hello :)"
완료가 되었으니 병합된 모습을 보도록 하겠습니다.
git과 달리 브랜치라는 개념이 달라 조금 헷갈릴 수 있습니다.
연습을 한번 진행하고 병합을 진행해주세요.
감사합니다 :)
'Programming > Git, Mercurial' 카테고리의 다른 글
git 에러 - Permission denied (publickey) (gitlab)(키에러) (3) | 2020.04.22 |
---|---|
[git] 깃 마스터와 다른 브랜치(최신화) 합치기 (rebase 사용법) (0) | 2020.03.24 |
[git] 깃 에러 해결(stash 사용법) - error the following untracked working tree (0) | 2020.02.27 |
[Git] git 브랜치 생성, 리스트 출력, 변경, 원격 브랜치 삭제 (0) | 2019.09.26 |
mercurial 명령어 (0) | 2019.04.20 |