영삼이의 IT정보2012. 6. 12. 21:09

svn merge 작업은 몇달에 한번씩만 하다보니 명령어를 까먹어서 매번 검색을 하는거 같다.
그냥 내 블로그에 정리를 해두자~

"1.1-stable" 이라는 브랜치의 작업 내용을 "trunk"에 반영(merge) 작업을 한다고 가정함. 

1. "1.1-stable"이 최초로 생성된 revision을 얻는다. 아래의 명령어를 이용하여 가장 밑에 로그 revision을 확인함.

$ svn log --stop-on-copy svn://www.test.com/test/branches/1.1-stable


2. 1에서 얻은 revision이 3000일 경우 "trunk"로 이동하여 아래의 명령어와 --dry-run 옵션을 추가로 이용하여 가상으로 merge 결과를 확인해본다. (--dry-run 옵션은 실제로 merge 작업을 하지 않고 merge 결과만 보여준다.)
아래의 명령은  revision 3000~최신 까지 "1.1-stable" 브랜치에서 작업된 내용을 "trunk"에 가상으로 반영해본다는 내용이다.

$ cd trunk
$ svn merge --dry-run -r3000:HEAD svn://www.test.com/test/branches/1.1-stable ./


3. 2의 결과를 보고 별다른 문제가 없으면 --dry-run을 제거하고 실제로 merge를 실행한다. 이때 소스코드에서 충돌이 발생하면 충돌난 부분을 찾아서 수정해준다.

$ svn merge -r3000:HEAD svn://www.test.com/test/branches/1.1-stable ./


4. merge가 완료된 trunk 코드를 diff 나 기타 방식대로 점검을 해본다.(귀찮거나 자신있으면 생략~ ^^)

$ svn diff | vi -


5. merge된 trunk를 commit 하여 작업을 완료한다. 

$ svn commit -m "브랜치 1.1-stable 작업 내역을 trunk에 반영함"



이제 merge된 코드를 빌드하여 테스트를 즐긴다~



Posted by 다오나무