관리모드에서 사용법
관리모드는 SSH로 서버에 접속하여 사용하실 수 있습니다.
1. 저장소 만들기
1-1 SSH로 접속하여 ~/www/svn_repo1)(이하 SVN디렉토리) 디렉토리로 이동합니다.
Ex) cd ~/www/svn_repo
1-2 저장소를 만들기 위해 다음과 같은 명령을 입력합니다.
-> svnadmin create [저장소이름]
1-3 위와 같은 명령을 입력하면 [저장소이름] 이라는 디렉토리가 새로 만들어집니다. 그 디렉토리가 앞으로 버전관리에 사용하게 될 저장 공간입니다.
2. 저장소에 접근 가능한 계정 생성하기
2-1 SVN디렉토리로 이동하여 다음과 같은 명령을 입력합니다.
-> htpasswd –c .htpasswd [계정]2)
2-2 위의 명령을 입력하면 아래의 그림과 같이 화면에 나오는데 패스워드를 두번 다 동일하게 입력하시면 됩니다.
2-3 위의 명령은 최초 1회만 실행하며 새로운 계정 추가를 위해서는 ‘-c’옵션을 제거하여 실행하시면 됩니다.
2-4 패스워드 변경방법은 2-3 의 명령 그대로 기존에 존재하는 계정으로 입력하시면 됩니다.
클라이언트(작업자)에서 사용법
클라이언트에서의 사용법은 윈도우 기반으로 기재하겠습니다.
클라이언트에서 사용법은 이클립스에서 Subversion 플러그인을 받아서 사용하는 방법과 톨토이즈(Tortoise)SVN을 이용한 방법만 기재하겠습니다.
I. 이클립스 + Subversion 플러그인
이클립스 + Subversion 플러그인을 이용한 방법은 JAVA기반의 프로그램을 제작할 때 사용되며 이클립스 버전은 GANYMEDE 기준입니다.
1. 이클립스에 Subversion 플러그인 설치
1-1 이클립스 메뉴의 Help -> Software Updates를 선택합니다.
1-2 Available Software탭에서 Add Site 버튼을 클릭하여 나오는 창의 Location 항목에 다음과 같이 입력후 OK버튼을 클릭하여 사이트를 추가합니다.
-> http://subclipse.tigris.org/update_1.4.x
1-3 추가된 두 개의 사이트에서 ‘Core SVNKit Library', 'Optional JNA Library', 'Revision Graph', 'Subclipse', 'SVNKit Adapter'를 선택하고 Install 버튼을 클릭합니다. 설치할 때 라이센스 동의화면이 나오는데 동의를 하시고 Finish버튼을 클릭하여 설치를 합니다.
1-4 설치가 완료되면 이클립스가 재시작되고, 재시작 후에 Window -> Open Perspective -> Other에서 ‘SVN Repository Exploring' 이 보인다면 정상적으로 설치된것입니다.
2. 이클립스 + Subversion 플러그인으로 저장소에 접근하기
2-1 Window -> show View -> Other에서 SVN -> SVN Repositories를 선택하고 OK버튼을 클릭합니다.
2-2 SVN Repositories창에서 마우스 우측버튼을 클릭 후 New -> Repository Location을 선택합니다.
2-3 Url 에 다음과 같이 입력합니다.
-> http://[자신의 ffhosting도메인]/svn/[저장소이름]
2-4 저장소에 연결할 때 계정과 패스워드를 물어오는데 ffhosting의 계정이 아닌 저장소에 접근하기 위해 생성한 계정을 입력합니다.
2-5 SVN Repositories창에 저장소의 경로가 추가가 되면 추가된 저장소의 경로에서 우측버튼을 클릭하여 Check out을 받습니다.
2-6 이후에 뜨는 창은 이클립스에서 프로젝트 생성 하는 방법과 동일하기 때문에 생략하겠습니다.
II. TortoiseSVN
TortoiseSVN은 윈도우에 설치하여 윈도우 탐색기를 기준으로 사용됩니다.
1. TortoiseSVN 설치
1-1 프로그램 설치를 위하여 http://tortoisesvn.net/downloads 에 접속하여 Installer버전을 다운받습니다.
1-2 설치과정 중에 라이센스 동의하시고 기본설정으로 설치 후 윈도우 재시작을 하시면 설치는 끝납니다.
2. TortoiseSVN으로 저장소에 접근하기
2-1 작업PC에 폴더를 하나 생성 후 우측버튼을 클릭하면 SVN메뉴가 추가된 것을 확인하실수 있습니다.
2-2 SVN메뉴 중 SVN Checkout을 클릭 후 URL of repository에 다음과 같이 입력합니다.
-> http://[자신의 ffhosting도메인]/svn/[저장소이름]
2-3 입력 후 OK버튼을 클릭하면 계정과 패스워드를 물어오는데 ffhosting계정이 아닌 저장소 접근을 위해 생성한 계정을 입력합니다.
2-4 계정을 정상적으로 입력하면 저장소에 저장되어있는 파일을 내려받고 저장소와 연결이 완료된 것 입니다.
III. SVN활용하기
클라이언트에서 SVN활용방법은 이클립스기반과 TortoiseSVN을 이용한방법과 큰 차이가 없기에 통일합니다.
1. 작업내용을 저장소에 저장하기(Commit)
1-1 저장소에서 받은 파일을 수정하였을 경우 기존의 아이콘 모양과 약간 다른모양으로 변경된 것을 확인할수 있습니다. 변경된 파일에서 우측 버튼을 클릭 후 Commit을 하게 되면 저장소에 저장이 되며 Revision 이 1 올라갑니다.
1-2 Commit은 파일 및 폴더 단위로 가능하며 파일개수에 무관하게 Commit 횟수에 따라 Revision이 상승하게됩니다.
2. 타인이 작업한 내용을 내려받기(Update)
2-1 타인이 작업한 내용을 Commit하였을 때 본인의 작업PC에서 변경된 파일 및 폴더에서 우측버튼을 클릭하고 SVN메뉴 중 Update를 클릭하면 타인이 저장소에 저장한 내용을 내려받게 됩니다.
2-2 만일 동일한 파일을 두명 이상이 작업을 하였을 때 수정 부분이 서로 다르면 SVN에서 자동으로 병합(Merge)가 되며 수정부분이 동일할 경우 충돌이 발생하게됩니다.
2-3 2-2에서 충돌이 발생한 경우는 여러명이 작업한 내용을 전부 보여주게 되며 충돌한 부분의 수정은 작업자가 직접 수정을 해야합니다.
3. 작업한 내용을 저장소에 있는 내용으로 되돌리기(Revert)
3-1 작업을 하던 도중 실수로 파일을 삭제하거나 내용을 원래대로 되돌리고 싶을 때 등에 사용되게 됩니다.
3-2 되돌리고 싶은 파일 및 폴더에서 우측버튼을 클릭하여 나오는 SVN메뉴에서 Revert를 클릭합니다.
3-3 그렇게되면 저장소에서 내려받은 후 파일을 수정을 하고 저장(시스템상에서)을 하고 Commit을 하지만 않았다면 되돌리기가 가능합니다. 파일을 삭제한 경우에도 Commit만 하지 않았다면 얼마든지 복구가 가능합니다.
4. 특정 Revision으로 돌리기
4-1 작업을 하면서 Revision이 올라가게 되는데 특정 이유로 인해 특정 Revision 으로 되돌리고싶을 때 사용됩니다.
4-2 TortoiseSVN 에서는 SVN메뉴 중 Update to Revision을 이용하여 되돌리고싶은 Revision으로 되돌릴 수 있습니다.
4-3 이클립스기반 에서는 Show History를 클릭하게되면 Revision목록이 나오게 되며 되돌리고 싶은 Revision에서 마우스 우측버튼을 클릭하여 Switch to revision ##을 선택하면 됩니다.
5. 저장소에 새로운 파일 추가하기
(svn:add to version control, add)
5-1 저장소에 새로운 파일을 추가하고 싶을 때 사용합니다.
5-2 새로 추가할 파일에 마우스 우측버튼을 클릭하여 SVN메뉴 중 Add to versio control(이클립스) 나 Add...(TortoiseSVN)을 선택합니다.
5-3 파일의 아이콘 모양이 수정된 상태로 변경되며 추후 Commit을 할 때 저장소에 포함됩니다.
6. 특정 파일 및 폴더를 저장소에서 제외하기
(svn:ignore, add to ignore list)
6-1 저장소에 저장하고 싶지 않은 파일(컴파일된 파일 및 개발환경 설정파일)들을 Revision에 포함시키고 싶지 않을 경우에 사용됩니다.
6-2 제외하고 싶은 파일에서 마우스 우측버튼을 클릭하여 SVN메뉴 중 add to ignore list (TortoiseSVN)나 add to svn:ignore(이클립스)를 선택합니다.
6-2 제외하는 기능은 Commit을 하지 않아도 바로 적용되며 이를 취소하고 싶은 경우에는 이클립스에서는 SVN Property에서 제거 가능하며 TortoiseSVN에서는 SVN메뉴 중 Remove from ignore list에서 가능합니다.
끝
1) 해당 디렉토리는 고정위치이며 ~/ 는 자신의 계정의 홈 디렉토리입니다.
2) 해당 계정명은 ffhosting의 접속 계정이 아닌 저장소에 접근을 위한 계정으로 ffhosting의 계정과 별도로 구분지어집니다.

이랑게
야야
피키
무브온

수고 많으셨습니다-