http://cafe.naver.com/vslinlin/50
먼저 [3탄] TortoiseSVN을 이용한 업데이트 글에 다시 빌드하라는 내용은 빠졌는데
혹시나 하고 모르실 수도 있기에 언급해드립니다.
업데이트 하신 후 소스 수정하시고 빌드하지 않으면 업데이트 하나마나입니다.^^
까먹지 마시길...
이번에 다뤄질 내용은 TortoiseSVN 응용입니다.
검색을 활용하면 얼마든지 사용법은 나옵니다.
그래서 여기서는 소스구축 후 패치파일 제작과 적용만 소개하고자합니다.
업데이트 할 때마다 매번 config 폴더의 파일을 수정해야합니다.
물론 처음 시작할 땐 일부로라도 그렇게 진행하시는 게 좋습니다.
구축 후 설정법을 익히는 데 도움이 될 수도 있습니다.
이제 매번 똑같은 설정 바꾸기 귀찮아지게 되면 한번쯤 "쉽게 하는 방법 없을까"라는
고민은 대부분 구축해본 분들이라면 해보셨을꺼라 생각합니다.
물론, 여러가지 방법이 있지만 여기서는 TortoiseSVN으로 패치파일을 만들고
다시 적용하는 법을 소개하겠습니다.
1. 주요 변경파일 패치파일 제작
우선 아래의 폴더로 이동해서 각각의 파일들을 본인 서버 구성에 맞게 수정합니다.
수정할 때는 EditPlus 등의 프로그램을 이용하시면 편리합니다.
\AE-go_GameServer\config\main\
\AE-go_GameServer\config\network
\AE-go_LoginServer\config\network\
수정을 다 마치고 저장하면 아래 그림처럼 아이콘에 느낌표 표시가 생깁니다.
이 느낌표의 의미는 내용이 원본 소스와 다르게 수정이 되었다는 의미지
파일에 문제가 있다는 표시가 절대 아닙니다.
해당 아이콘의 설명은 TortoiseSVN 설정에 보면 나와있으니 참고하세요.
아래와 같은 방법으로 패치파일을 만들겠습니다.
소스 최상위 폴더 오른쪽 마우스 클릭 -> -> TortoiseSVN -> 패치 생성
수정된 내역이 뜨고 체크가 된 파일들에 대한 패치 파일을 만들겠다는 내용입니다.
"저장 위치"를 선택하고 "파일 이름"을 쓴 다음 "저장" 버튼을 눌러주세요.
아래 그림처럼 패치파일의 내용을 보여 주면서 지정한 위치에 파일이 저장됩니다.
이로써 다음에 업데이트 후 한방에 변경하기 위한 패치파일 제작은 끝났습니다.
2. 리비전 업데이트하기 전 되돌리기
일단, 소스에 인위적인 수정이 들어갔으므로
업데이트 하기 전에 원본 소스로 되돌리는 작업을 진행합니다.
이유는 업데이트시 충돌이 발생할 수도 있기 때문입니다.
방법은 매우 간단합니다.
노보팩 기준으로 \SVN AIONEmu Source\aion-emu 오른쪽 마우스 클릭해서
아래 그림처럼 되돌리기를 실행해줍니다.
여기서 되돌리기란 원본 리비전으로 복원한다는 의미입니다.
모두 선택하고 확인을 누릅니다.
모두 진행된 후 확인을 눌러주면 원본 리비전으로 복원됩니다.
3. 리비전 업데이트
리비전 업데이트 합니다. 방법은 [3탄] TortoiseSVN을 이용한 업데이트 글에 나와있습니다.
4. 패치하기
빌드를 진행하기 전에 먼저 만들었던 패치파일을 이용해서 패치를 진행합니다.
패치파일에서 오른쪽 마우스 클릭해서 하는 방법과
소스폴더에서 오른쪽 마우스 클릭해서 하는 방법이 있습니다.
여기서는 패치파일에서 패치적용을 진행해보도록 하겠습니다.
아래와 같이 만들어진 패치파일을 오른쪽 마우스클릭 -> TortoiseSVN -> 패치 적용 클릭합니다.
위에서 패치 새성할때 소스의 최상위 폴더를 선택했듯이 패치 적용시에도 동일하게 선택합니다.
아래와 같은 창이 뜨면서 패치될 파일들을 보여주게 되는데그 창에서
오른쪽 마우스 클릭 -> Patch all을 실행합니다.
각각의 파일을 더블클릭하면 어떻게 수정이 되는지 TortoiseMerge를 통해서 확인할 수도 있습니다.
아래 그림처럼 패치가 완료되면 파일리스트 색상이 회색으로 바뀌면서
마지막 파일의 패치전과 패치후가 TortoiseMerge에 보여지게됩니다.
이로써 매번 수정해야하는 주요 설정 파일을
미리 만들어둔 패치파일을 통해 간단히 변경할 수 있습니다.
간혹 패치될 원본소스가 이전과 다르게 업데이트 되어 수정되는 경우도 있습니다.
그럴땐 패치될 파일을 보여줄때 빨간색으로 간혹 나오기도합니다.
TortoiseMerge라는 프로그램이 충돌한 파일을 해결하는 역할도 하긴 하는데
되도록이면 이럴 경우엔 강제로 진행하기보다는
일단은 빨간색으로 나온 파일을 더블클릭해서
정상적으로 바뀌는 지 확인 한 후 패치를 진행하도록 합니다.
아래 내용의 뜻은
- 라고 표시되는 줄을 삭제하고
+ 라고 표시되는 줄을 넣겠다는 의미입니다.
다른 사람이 올린 패치파일을 적용하다보면 위와 같은 상황이 많이 생깁니다.
제가 마지막으로 올린 패치파일(유닉2021_kit_end.patch)도 현재 최신리비전에 적용시 충돌이 발생하며
정상적으로 병합도 되지 않는 문제가 발생합니다.
이를 개인적으로 충돌이 나지 않게 해결하는 방법은 분명히 있습니다.
원본과 패치되는 부분을 자세히 비교해서 수동으로 수정해 주는 것이 가장 현명하다고 판단됩니다.
이제 빌드하고 서버 구동하면 됩니다.
수고하셨습니다.
'버전관리' 카테고리의 다른 글
중간 commit (1) | 2013.01.13 |
---|---|
Version Control System에서 알아두어야 할 용어 (0) | 2012.11.18 |
visualstudio2010 에서 tortoise 와 연결하여 svn 으로 올릴때 무시할 수 있는 파일들 (0) | 2012.11.01 |
perforce 사용법 (0) | 2012.11.01 |
로컬에서 visualSVN 서버 구성하기 (0) | 2012.11.01 |