1. 3-way merge tool 설정



- merge에 사용할 3-way merge tool 설정.
- TortoiseHG를 설치하면 같이 설치되는 KDiff3는 한글지원이 제대로 안되어서 DiffMerge로 설정.






DiffMerge

- 다운로드 받은 DiffMerge.exe 파일을 TortoiseHG가 설치된 폴더에 복사. (만약 인스톨 했다면 설치경로에 있는 DiffMerge.exe 를 복사하거나, 시스템 환경변수로 DiffMerge 설치경로를 지정해 주면 됨)








- TortoiseHG의 3-way Merge Tool을 DiffMerge로 설정.
- Context Menu에서 TortoiseHG > Repository Settings 선택 (만약 전체 설정으로 하고 싶으면 Global Settings 선택)








- 3-way Merge Tool 에서 DiffMerge 로 설정















2. push 시도



- commit 후 push 를 해야 반영이 됨로 push 를 시도해야 비로소 conflict 여부를 알 수 있음. 그 전에 미리 pull을 해서 merge를 해둘 수도 있음.
- 아래는 push 했을 때 conflict 에러가 났음.















3. pull



- conflict 가 났을 시 pull 을 해서 merge 시도 준비
- 하단에 보이는 'View pulled revisions'  메뉴를 통해 로그창을 띄움















4. log 확인 및 merge 준비


- log 창에서 diff 정보를 확인하고 merge 시작








- log 창에서 오른쪽 클릭을 해서 나오는 메뉴 중 merge with 선택. (3-way merge를 시도)








- 선택하면 merge할 리비전 간 파일의 정보가 나옴








- 우선 자동으로 Merge를 실행한 결과를 보여줌








- base가 N-1 리비전, local이 현재 작업한 파일, other가 직전에 커밋된 파일임.
- 충돌이 난 부분은 빨간색, 일치하는 부분은 초록색 등 색으로 구분해가며 Merge.
- 우측 상단의 두개의 아이콘은 모양 그대로, base의 내용을 적용시키거나 other의 내용을 적용시키는 아이콘.








- Merge를 하고 파일을 저장한 다음 DiffMerge 프로그램을 종료시키면 일단 Merge 완료















5. merge 완료



- merge 가 완료되었다면 다시 commit (직접 해도 되고 아래처럼 merge 창을 통해 해도 됨)








- commit 이 완료되면 다시 push 시도.
- push가 끝난 후 graph를 보면 아래처럼 conflict 가 나서 잠시 branch가 나왔다가 merge를 통해 다시 메인으로 병합되는 것을 확인할 수 있음.






















Posted by bloodguy
,