SVN Tool - RapidSVN 사용법

컴글 2010.08.17 16:14 posted by 배제군
1. SVN 개념

개념도개념도. SVN의 Checkout, Update, Commit 등의 명령으로 형상관리를 할 수 있다.


SVN은 위처럼 서버등록된 파일을 자신의 PC에 내려받아 수정하고 SVN 서버에 업로드 하는 방식의 버전관리시스템이다.

2. RapidSVN
Tigris.org Open Source Software Engineering Tools 에서 배포하는 SVN 클라이언트다.
왜 이걸 쓰냐면 크로스플랫폼 프로그램이기때문에 리눅스, MAC, 윈도우 똑같이 무료로 사용할 수 있다.

2.1 RapidSVN 설치.
http://rapidsvn.tigris.org/ 에서 최신버전을 다운 받는다. 글쓴 시점에서 0.12.0-8051 이다.


설치진행중컴맹이라도 Next만 클릭하면 설치는 식은 죽먹기.


실행화면설치 완료 후 실행


2.2 RapidSVN 작업 준비
 글 처음의 개념도에서 1번의 내용이다.
 아래 그림처럼 북마크에서 우 클릭 후 메뉴중 Checkout New Working Copy.. 을 클릭한다.
 - Checkout New Working Copy.. : 새로운 폴더에 Checkout 을 하겠단 뜻이다.
 - Add Existing Working Copy.... : 이미 Checkout 받은 폴더를 북마크에 추가
 - Add Existing Repository... : SVN서버의 목록을 등록한다. Checkout New Working Copy.. 는 데이터를 내려 받지만 이 메뉴는 서버데이터의 목록만 확인 가능하다.
 - Create New Repository... : 커맨드라인 서브버전(svnadmin) 파일로 받아 처리 하라고 한다. *_*;;
 - Switch Repository... : 선택된 저장소의 URL을 바꿀때 쓴다. 저장소 주소가 바뀐 경우 필수다.

Checkout New Working Copy.. 선택 화면Checkout New Working Copy.. 를 눌러 내 PC에 SVN서버에서 파일을 Checkout 받자.




다음의 Checkout 팝업창에서 URL 과 목적폴더를 눌러 OK를 누른다.

Checkout 창URL 및 Dest Dir 을 선택하고 OK를 누른다.


계정정보입력창계정정보를 요구하면 저장소에 접근가능한 계정정보를 입력한다.



아래는 OK 누른후 다운 받아진 항목과 결과 창이다.
Revision 이 1 이고 Rep.. 이 1이니 현재 저장소와 내 폴더의 리비전이 일치하는 현재로선 최신버전이다.

Ckechout 완료 화면Checkout 완료 후 Bookmarks 에 폴더가 추가되어 있고 폴더 및 파일 내용이 나온다.



실제 탐색기에도 파일이 받아져 있다.

탐색기 내용탐색기에도 동일한 파일이 들어있다.



하지만 Checkout 된 폴더에는 숨겨진 파일로 .svn 폴더가 존재한다.
다음은 폴더 속성에 숨김 파일 보기를 했을때 화면이다.

숨겨진 svn 폴더숨김파일보기를 했을때 숨겨진 .svn 폴더가 나타난다.


이게 SVN 을 사용하면서 가장 중요한 부분이 아닐까 싶다.
이 .svn 파일 속에는 현재 폴더에 각 파일의 정보를 담고 있는 META 파일이 존재하기때문에 함부로 위치이동을 하면 안된다.
.svn 폴더가 삭제됐을 경우 update 받으면 새로 받아지지만 혹시나 다른 svn 폴더로 덮어 쓰기 되버리면 감당하기 힘들다.. ;;
그리고 A라는 폴더의 내용의 이름을 B라고 바꾸고 싶을때 그냥 파일이름 변경으로 하면 절대 안된다.
(저 .svn 속의 META 파일에선 A라는 파일로 계속 남아있을테니까..)
그래서 SVN 에서 이름 바꾸기는 A폴더의 내용을 B로 복사(B폴더내의 .svn삭제) 후 A폴더 삭제(delete) 명령, B폴더 추가(add) 명령을 한다.
이걸 깜빡하면 Commit 했을때 경로가 깨졌다니 충돌이 났다니 저장소를 찾을 수 없다느니하는 엄청난 결과가 온다.
이러면 이전의 리비전으로 모두 받고 수정파일만 다시 저장하고 Commit 하는 사태가 벌어질 수 있으니 매번 강조해도 지나칠 수 없는 것이다.

※ SVN 1.7 이상부터는 .svn 파일이 최상위 폴더에만 저장되는 구조로 변경되었다 


2.2 RapidSVN 최신 버전 갱신 (Update)
 Checkout 으로 작업폴더를 만들었으면 작업을 시작할때다.
 모든 작업은 시작하기전에 Update 를 받아 최신파일로 갱신해야한다.
 예전 파일을 수정하면 다른 사람이 수정한 최신파일 적용받지 못해 충돌이 날 수 있기때문이다.

Update 선택작업전 update 는 필수다.


OK를 누르면 최신버전을 확인 후 자동으로 적용시켜준다.

Update 창최신 버전을 항상 확인하자.



업데이트가 완료됐으면 해당 폴더에서 작업(파일추가, 편집, 삭제)를 진행하고 완료시 SVN 으로 돌아와 Commit 준비를 한다.

작업후 커밋직전 확인파일추가시 반드시 add 명령으로 추가 후 Commit 해야 한다.

위의 프로젝트에서 readme.txt 라는 파일이 추가 되었기 때문에 Status 부분에 unversioned 라고 나타났다.
이는 현재 PC에서 파일이나 폴더가 새로 추가 되었으나 SVN에 적용이 안 됐다는 뜯이고 이를 적용하기 위해서 Add 명령을 주어야 한다.
*Add recursive 는 현재 폴더와 하위폴더를 탐색해서 자동적으로 모두 Add 시켜주는 명령이다. 만일 하위 내용까지 모든 내용을 파악하고 있다면 사용해도 좋지만 가능하면 직접 해당파일을 선택(다중선택)해서 Add 하는게 좋다.

Add 후 화면Add 후 Status에 added 된걸 확인 할 수 있다.


Add 가 되었으니 이제 Commit 을 하자.

프로젝트를 Commit폴더를 선택하고 Commit 을 누른다.

SVN 에서 Commit 은 전체 프로젝트 기준이 아닌 파일이나 폴더단위로 가능하다 만일 파일 하나만 서버에 적용하고 싶으면 파일을 선택후 Commit 을 누르면 되고 폴더를 선택하면 폴더 하위에 있는 내용이 적용된다.

Commit 창 내용입력Commit 을 위해 Message 내용을 입력하고 Commit 될 파일을 확인하고 OK 를 누른다.


Enter log message 부분에서 로그 내용을 입력하고 OK 를 누르면 Commit 이 완료된다