tortoise svn(이하 svn)을 가지고 trunk 와 branch 간에 merge 하는 방법을 소개한다.
svn에서 머지하는 방법은 여러방법이 있는데(merge 관련 팝업메뉴가 여러군데서 뜨기 때문에)
크게 원본인 trunk 디렉토리에서 시작하는 방법(merge to)과 branch 디렉토리에서 시작하는 방법(merge)가 있을 것 같은데,
당연히 결과물도 같고 중간에 거치는 내용도 같기 때문에 취향대로 골라서 사용하면 되겠다.
상황은 trunk에서 branch로 merge하는 상황을 가정한다.
(생각해보니 일반적인 상황이라면 branch에서 trunk로 merge 하는게 많을 듯 한데...)#include <stdio.h>
int main()
{
printf("Hello world!\n");
printf("for delete\n");
return 0;
}
1. trunk 디렉토리(수정된 원본)에서 시작하는 방법
(1) trunk 루트에서 show log를 선택한다.
![](http://pds24.egloos.com/pds/201111/11/18/d0124018_4ebcad0320daa.png)
![](http://pds23.egloos.com/pds/201111/11/18/d0124018_4ebcadb480a4b.png)
![](http://pds22.egloos.com/pds/201111/11/18/d0124018_4ebcad9d7d97c.png)
![](http://pds23.egloos.com/pds/201111/11/18/d0124018_4ebcba92b62f3.png)
![](http://pds23.egloos.com/pds/201111/11/18/d0124018_4ebcbb40ba6b9.png)
![](http://pds22.egloos.com/pds/201111/11/18/d0124018_4ebcbb9e6c8b7.png)
2. branch 디렉토리(수정할 대상)에서 시작하는 방법
(1) trunk에서 가져올 수정된 내용을 확인한다.
![](http://pds24.egloos.com/pds/201111/11/18/d0124018_4ebcc3dd5683f.png)
![](http://pds24.egloos.com/pds/201111/11/18/d0124018_4ebcc3f164e24.png)
![](http://pds23.egloos.com/pds/201111/11/18/d0124018_4ebcc41db5191.png)
![](http://pds18.egloos.com/pds/201111/11/18/d0124018_4ebcc42e406ca.png)
![](http://pds23.egloos.com/pds/201111/11/18/d0124018_4ebcc4484ccb0.png)
![](http://pds23.egloos.com/pds/201111/11/18/d0124018_4ebcc4523bc55.png)
![](http://pds23.egloos.com/pds/201111/11/18/d0124018_4ebcc461bcaad.png)
![](http://pds24.egloos.com/pds/201111/11/18/d0124018_4ebcc46c31430.png)
![](http://pds22.egloos.com/pds/201111/11/18/d0124018_4ebcc47deb655.png)
3. merge 과정 중 conflict가 발생했을 경우
(1) trunk 관련소스
![](http://pds23.egloos.com/pds/201111/11/18/d0124018_4ebcc9ad12596.png)
![](http://pds23.egloos.com/pds/201111/11/18/d0124018_4ebcca067afff.png)
이 경우 merge를 실행하면, 아래와 같이 conflict를 resolve 할 수 있도록 선택창이 뜬다.
내용은 Choose item, Resolve conflict, Leave conflicted 이렇게 3가지다.
Choose item은 merge원본과 대상중에 하나의 것으로 선택하여 conflict를 해결하는 방법이고(local이면 merge할 대상파일 내용으로, repo면 원본이겠죠?)
Resolve conflict내용중 Edit conflict를 누르면 충돌나는 부분을 해결할 수 있게 diff 에디터가 실행되어, resolve를 할 수있게 하고
Leave conflicted 버튼들을 선택하면 충돌난 상태 그대로 놔두게 된다.(일반적인 conflict 상황처럼 해결하면 된다)
![](http://pds18.egloos.com/pds/201111/11/18/d0124018_4ebcca0fd255a.png)
일반적인 Conflict 상황과 동일하므로 해결하고 Commit하면 완료된다.
![](http://pds24.egloos.com/pds/201111/11/18/d0124018_4ebcca18b9cad.png)
'etc' 카테고리의 다른 글
[Network] IRC구조 (0) | 2013.02.22 |
---|---|
[C++] warning C4996 (0) | 2013.02.21 |
[C++] 전방선언과 include (0) | 2013.02.13 |
[C++] GetLastError() 활용 (0) | 2013.02.13 |
[Network] 2-Tier, 3-Tier, n-Tier (0) | 2013.02.13 |