'Merge'에 해당되는 글 2건

  1. 2011.11.09 [git] 충돌 체험기
  2. 2010.06.27 [Scala] 머큐리얼 merge 실패기

[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
,
최근에 nephilim님으로부터 [머큐리얼(hg)을 사용하는 소스형상관리]를 사사하고 있다.
모든 작업은 기본적으로 머큐리얼이 설치된 상태에서 시작된다.

1. 저장소를 만들고 초기화하면 .hg가 생성된다.

2. 파일을 만들면서 3번의 커밋을 진행한다.

3. 로그를 확인하니 작업이 잘 진행되었다.

4. 다음 작업을 위해 파일을 백업한다.

5. 파일을 이전 버전으로 backout한다. 확인하면 2번째 커밋상태이다.

6. 파일을 봐도 이전버전. 그럼 rollback을 수행한다. 그리고 revert.

7. revert를 수행하면 현재 버전파일과 이전 버전의 파일(.orig)이 보인다.

8. .orig파일을 삭제하고 tip을 확인하면 마지막 커밋으로 되어있는게 확인된다.

9. 이번에는 각각의 파일을 이전 버전으로 돌리고 changeset도 되돌려 새로운 head를 만든다.

10. head가 2개로 나눠졌음을 알 수 있다.

11. 두 head의 머지를 수행하려고 했으나 성공하지 못했다.

12. 결과를 보면 파일이 충돌되었다.


이유는 머징툴이 설치가 안되어 있어서라고 nephilim님이 말씀하셨다.
그래서 나는 거북이를 설치하였다.

Posted by zeide
,