'머징'에 해당되는 글 2건

  1. 2011.11.09 [git] 충돌 체험기
  2. 2010.06.29 [Scala] 머큐리얼 merge 성공기 - 거북이 2

[git] 충돌 체험기

자료 2011. 11. 9. 09:46
비록 2인(나포함)이지만 DVCS로 소스를 관리하고 있다. 저장소는 bitbucket.org(빛바굴이라고 부른다).
오늘은 오랜만에 A님께서 푸시를 하셨다.

직진하는 곰돌이가 나, 알 수 없는 도형 A.


그때 나는 무언가 로그를 보겠다고 소스에 손을 대고 있었다.
그 와중에 pull을 하니...

ZMBP:************* zeidepeace$ git pull
remote: Counting objects: 23, done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 15 (delta 11), reused 0 (delta 0)
Unpacking objects: 100% (15/15), done.
From bitbucket.org:########/*************
   559aad6..9e2d63d  master     -> origin/master
Updating 559aad6..9e2d63d
error: Your local changes to the following files would be overwritten by merge:
Classes/Controllers/MobileWeb/MobileWebViewController.m
Classes/Extends/MOKMutableURLRequest.m
mok.front.ios.xcodeproj/project.pbxproj
mok_front_ios-Info.plist
mok_front_ios_Prefix.pch
Please, commit your changes or stash them before you can merge.
Aborting

예상했던대로 일이 생겼다. 
지금 이 상황은,  5개의 파일을 로컬저장소에서 수정하고 있었는데 원격저장소의 파일을 불러와(pull) 덮어씌우게 된다고 말해주는 것이다.

그래서 다음과 같이 처리했다.
1. 지금 상황을 commit까지만 한다.
2. HEAD를 이전으로 돌린다.
ZMBP:************* zeidepeace$ git reset --hard HEAD@{1} 
3. 로컬저장소에서 pull한다. 

마지막에 푸시를 해서 가지를 늘려보았다.

양쪽 소스를 머징하는게 아니라 받기만 하면되는지라 간단하게 끝났다.
 
PS)이력을 볼 수 있다.
ZMBP:************* zeidepeace$ gitk 

 
Posted by zeide
,
거북이는 여기에서 다운받아 설치를 하고 vimdiff는 여기에서 다운받아 설치를 한다.

거북이 버전.

먼저 .hgrc 파일을 수정한다.

[ui]
username = 유저네임
verbose = True
merge = tortoisemerge

[tortoisehg]
vdiff = tortoisemerge

[merge-tooles]
tortoisemerge.executable = tortoisemerge
tortoisemerge.args = $local $other $base -o $output
tortoisemerge.gui = True

1. 실패기에서 이어지는 부분이므로 앞부분이 궁금하면 이전 포스팅을 참고하면 된다.

2. 파일을 원하는 체인지셋으로 돌린다.

3-1. 이것은 잘 보면 실패한 내용임을 알 수 있다. merged - (not found) 머징의 결과를 출력할 파일이 없다. 이것은 .hgrc파일의 설정을 잘 못해서 나온 결과이다.

3-2. .hgrc파일을 수정하고 다시 실행하니 아래 쪽으로 머지대상 파일이 나온다.

4. 머지 성공.

5. 이번에는 head를 두 개로 나눠본다.

6. head의 한 부분을 커밋해본다.

7. 원하는 체인지셋으로 바꿔본다.


여기서 중요한 것은 바로 거북이를 사용한 머징샷이다.
이 과정을 위해 거북이로 머징을 대략 20번은 넘게 했다. 과정에서 빠진 부분이 있는데 바로 hg clone 이다.
백업파일을 만들어두면 테스트하던 폴더를 삭제하고 백업파일을 클론해서 사용하면 되기 때문에 그나마 소요 시간이 덜 걸렸다.

사실 .hgrc 파일의 내용이 맞는지는 잘 모르겠다. :-)

추가 hg 명령어 페이지
Posted by zeide
,