서브 버젼 설치 및 설정

얼마 전까지는 누군가 설치해 주는 사람이 있어서 그냥 편하게 사용했었는데 내가 직접 설치해서 사용하려고하니 왜 이리 걸거치는 것이 많은지 직접 해보면 결코 어려운 것은 아니지만, 누구라도 설치에 많은 시간을 빼앗기지 않게 하기 위해 아래와 같은 간단한 예시를 적어 두고자 한다. 이번 설치 예제는 MS 윈도우에 설치로 제한한다...
서브버젼을 윈도우 서버에서 이용하려는 사람이 있다면 아래 설치 방법이 유용하리라 생각된다.
기본적으로 사용할 설치경로와 저장소 경로는 편의에 맞게 고쳐서 사용하시길 다만 고쳐서 사용하면 검정 배경에 흰 글씨로 표시해 놓은 부분(도스창에서 실행될)들도 잘 고쳐서 사용하시길. 파란색 배경 흰글시는 메모장으로 생각하면 좋을 듯...

서브 버젼 설치 경로 : C:\\Program Files\\Subversion\\bin\\svnserve.exe
저장소 경로 : D:\\SVN_work

서브 버젼의 설치
서브버젼 홈피에서 Binary Pack 중에 윈도우 버젼을 받으면 된다. 되도록이면 최신 버젼으로 받고 설치하도록 하자. 윈도우에서 설치하는 모든 프로그램이 그러하듯 그냥 ok 로 일관해주면 끝.

저장소 설치
설치 되었다면 저장소를 설치하자. 저장소는 말 그대로 서버로 전송된 파일들이 저장 관리되는 디렉토리다. 비교적 안전한 곳에 디렉토리를 생성 혹은 지정하고, 특정 디렉토리를 정했으면 아래 2개 중 한개의 명령만 실행한다.
fsfs는 파일시스템(fat32, ntfs 같은)에 그대로 파일을 적는 방식, bdb는 버클리 디비를 이용하는 방식의 저장소(repository) 생성 옵션이다. 차후 유지 관리라던지 여러가지 목적으로 버클리디비 옵션 사용하는 것이 일반적이다. 

Create an FSFS-backed repository

svnadmin create --fs-type fsfs D:\\SVN_work


Berkeley-DB-backed repository

svnadmin create --fs-type bdb D:\\SVN_work


권한 설정
권한 설정은 각 저장소 별로 이뤄진다.
저장소로 지정한 디렉토리로 이동해 보면 conf 란 폴더가 보일 것이며 그 폴더를 열어 보면 확장자가 없는 2개 파일(authz, passwd)과 svnserver.conf 파일이 보이게 된다.

svnserver.conf
파일을 메모장에서 연다 (다른 텍스트 편집기가 있다면 말리진 않는다...)
접속자에 대한 권한 설정이다.
anon-access (순수하게 접속한 사람) 과 auth-access(계정 접속한 사람) 으로 나뉘어져 있고 쓰기, 읽기, 해당없음 으로 구분된 권한을 줄 수 있군... 아래 예시에서는 anon-access 는 아무것도 할 수가 없군요...^^
인증된 사람만 쓸 수 있도록 했으니 인증된 사람에 대한 정보도 필요하군요 password-db 가 그 역할을 해줍니다. passwd 란 파일에서 정보를 얻겠다는 이야기군요. 그 외 authz-db, realm 옵션이 있지만, 간단히 사용할 것이기에 접속자 처리와 계정 정보 두가지만 생각하도록 하죠...

[general]
### These options control access to the repository for unauthenticated
### and authenticated users.  Valid values are "write", "read",
### and "none".  The sample settings below are the defaults.
anon-access = none
auth-access = write

password-db = passwd

passwd
계정/비번을 정의하고 관리하는 디비(?) 네요. 메모장에서 간단히 열리는 것으로 봐서는 그냥 파일일 뿐인데 디비로 정의해 놓았군요...소스관리라는 명제 하에 누가 어떤 일을 했는지 알고자 한다면 계정 설정은 필수라고 생각하는데 여러분은? 설정도 간단하네요... 단 패스워드 전송방식이 암호화가 아니라 좀 그렇죠... 비번은 간단히...
계정 : test1
비번 : pass
추가는 줄만 추가하시면 되고 계정 적을 때 줄 시작에 스페이스가 들어가지 않도록 조절하시는 센스가 필요합니다.
[user]
test1 = pass
test2 = pass

위 두개 파일은 메모장에서도 깔끔히 처리됩니다. 저는 메모장을 이용했더랬죠...

윈도우 서비스로 등록하기(데몬 돌리기)
설치하고 저장소만 만들었다고 서버로 동작하는 것은 아닙니다. 데몬을 띄워 줘야 외부에서 SVN 으로 접속도 하고 파일도 전송, 저장 시킬 수 있습니다. 데몬을 실행시키는 명령어는 간단하지만, 도스창에서 실행 후 그 도스창을 닫아 버리면 또 멈춰 버리기 때문에 서비스에 등록하여 서비스로 운영하시는게 편합니다(지금 여러분이 활용하시려는 OS는 윈도우 입니다. 까만 도스창(터미널)에서 타이핑 몇자 한다고 백그라운드 서비스가 도는게 아니라는 거죠...). 1.4 버젼 부터는 sc.exe 를 이용한 서비스 등록이 가능하다고 하네요... 이전 버전을 이용할 때는 서비스 등록 인터페이스가 된 껍질에 쉘 커맨드로 데몬을 띄우는 프로그램을 구해서 사용했는데... SVN 도 발전하는 군요.
sc.exe 명령이 가능하다면...(sc.exe 명령에 대한 추가 정보 언제지워질지모르는 한글정보)
sc create [실행명] binpath= "[설치경로]--service -r [저장소위치]" displayname= "[서비스항목 표시이름]" depend= Tcpip start= auto
실 사용 예
sc create svn binpath= "C:\\Program Files\\Subversion\\bin\\svnserve.exe --service -r D:\\SVN_work" displayname= "Subversion Server" depend= Tcpip start= auto
등록된 내용 확인하기 및 서비스 실행시키기( 서비스에 등록되었으니 net 명령을 이용해서 서비스를 실행하고 중지시키고가 가능합니다.)
C:\> net stop svn
C:\> net start svn


SVN 서버에 접속하기
일반적인 윈도우 환경이라면 당연히 TortoiseSVN 을 사용하시는게 좋습니다. 다운 받으셔서 설치하시고 필요하신분은 한국어 언어팩도 받으셔서 설치하시면 금상첨화죠.


탐색기를 여시고 폴더를 하나 만드신 후(소스를 위치시키려는 폴더를 지정하셔도 됩니다.)
폴더에서 마우스 우클릭 > SVN CheckOut
Checkout Dialog 가 등장합니다.
URL of repository 에 지정할 서버 주소를 입력하시면 됩니다.

svn://localhost/SVN_work
locahost 대신 IP 를 적으셔도 됩니다. localhost 의 경우는 127.0.0.1 이 되겠군요. 중요한것은 인식할 수 있는 serverName 이나 IP 가 필요하다는 점입니다. 211.211.211.211  을 할당받은 서버에 설치하셨다면 svn://211.211.211.211/SVN_work 가 되겠군요...
맨뒤의 SVN_work 는 그냥 옵션입니다. 실제 적용시에는 입력란 우측 끝에 있는 ... 을 클릭하시어서 Repository Browser 를 이용하셔도 됩니다. 물론 거기서 url 입력은 위와 동일하게...

약간의 Tip
현재 진행하는 프로젝트의 경우 기존 프로젝트에서 신규 추가인 경우인데... 개발시 수정하거나 신규 생성하는 폴더만 SVN과 연결해서 사용하고 있네요... 기존 소스의 경우 소스 세이프를 이용하나 신규 개발이 끝나기 전까진 공용 모듈 쪽에 check in 을 못하므로 소스세이프를 끊어 버리고 그렇게 이용하고 있습니다.(물론 스토리지에 처음 올릴때는 기존 소스를 몽땅 올리고 연결만 폴더 단위로 줄여서 사용하고 있는 상태죠...)
by killic | 2007/07/10 18:12 | methodology | 트랙백 | 덧글(1)
트랙백 주소 : http://whohwa.egloos.com/tb/1600162
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by Gleam™ at 2007/07/19 15:38
그 누군가는 열심히 삽질 하고 있다죠...-_-;;

:         :

:

비공개 덧글

< 이전페이지 다음페이지 >