1) 서버 설정을 위해 서버에 SVN 설치

다음의 URL에 접속하여 다운받는다.
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91


그리고 설치한다.


2) 서버 설정을 위해 서버에 SVNSERVE Manager 설치

다음의 URL에 접속하여 다운받는다.

http://www.pyrasis.com/blog/tag/SVNSERVE%20Manager

설치 후 저장소 디렉토리를 생성한 후 다음과 같이 설정한다.

이번 예제에서는 d:\pub를 repository로 지정하여 보았다.

사용자 삽입 이미지


3) 서버 설정을 위해 서버에 TortoiseSVN 설치

다음의 URL에 접속하여 다운로드 한다.

http://tortoisesvn.net/downloads

설치 후 리부팅이 완료되면 프로젝트를 추가한다.

test라는 프로젝트를 추가하고자 할 경우,
우선 앞에서 설정한 Repository로 이동하여 test라는 폴더를 생성한다.


사용자 삽입 이미지

사용자 삽입 이미지

생성이 완료되면

conf/svnserve.conf 파일을 열어 하단의 붉은 부분처럼 수정한다.

### This file controls the configuration of the svnserve daemon, if you
### use it to allow access to this repository.  (If you only allow
### access through http: and/or file: URLs, then this file is
### irrelevant.)

### Visit http://subversion.tigris.org/ for more information.

[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
### The password-db option controls the location of the password
### database file.  Unless you specify a path starting with a /,
### the file's location is relative to the conf directory.
### Uncomment the line below to use the default password file.
password-db = passwd
### The authz-db option controls the location of the authorization
### rules for path-based access control.  Unless you specify a path
### starting with a /, the file's location is relative to the conf
### directory.  If you don't specify an authz-db, no path-based access
### control is done.
### Uncomment the line below to use the default authorization file.
# authz-db = authz
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa.  The default realm
### is repository's uuid.
realm = 프로젝트 이름 또는 하고 싶은 말

이제 로그인을 할 수 있도록 계정을 설정해보자

conf/passwd 파일을 열어 [users] 밑에 사용자를 추가한다.

### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.

[users]
# harry = harryssecret
# sally = sallyssecret
demo = passwd

위의 예제에서는 demo라는 유저를 추가하고 비밀번호는 passwd라고 설정하였다.

이제 서버 설정은 끝났다.

필요한 사용자 계속 추가해서 협업을 하면 되겠다.


4) 클라이언트에서 사용시
3)과 마찬가지로 TortoiseSVN을 설치하고
원하는 위치에 폴더를 만든다. 그리고 오른쪽 버튼을 누르고 Check out을 누르면 된다.

주소 넣는 창에는 다음과 같은 형식으로 넣어주면 되겠다.

svn://address/project

MPY-SVN-STAT라는 소프트웨어를 이용하면 SVN으로 개발자 로그를 분석 할 수 있다.

여기서 주시할 부분은 어느 사용자가 얼마만큼 소스를 수정하였는지,
얼마나 많은 일을 하였는지... 등을 분석할 수 있다는 것이다.

협업시 누가 기여를 많이 했고,
누가 많이 놀았는지... -.-

이런부분이 너무 적나라하게 들어나는 단점도 있어, 본의 아닌 협업시의 멤버 감시 솔루션으로도 쓸 수 있다.

사용자 삽입 이미지
로그 데모는 다음의 URL에 접속하면 자세하게 나온다.
http://mpy-svn-stats.berlios.de/mpy-svn-stats/

파이썬으로 동작하는 이 소프트웨어는 다음의 사이트에서 최신버젼을 다운 받을 수있다.

http://mpy-svn-stats.berlios.de/

혹시나 사이트가 그새를 못참고 없어질 것을 대비하여 친절하게 다운받아 놓았으니 성질이 급하신 분은 다음의 링크를 통해 다운받으면 된다.

SVN( SubVersioN )은 서브버젼의 약자로 소스관리를 할 수 있게 해주는 툴이다.

SVN은 사용자가 SVN에 등록한 파일을 사용자가 한 파일에 대해서 변경이 있을때마다 때마다 리비젼(히스토리)별로  저장하여 언제라도 어느 시점에 작업한 파일을 불러서 사용을 할 수 있다.

1. 설치 방법
서버를 설치하기 위해
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 에 접속한다. 최신 버젼을 다운로드 받아서 설치한다. 윈도우 사용자일 경우 Windows installer with the basic win32 binaries라고 설명이 되어있는 파일을 다운 받는다.

NT 계열의 경우, 자동으로 SVN 설치 폴더가 PATH 로 잡혀서 어디서든 svn 명령이 실행되게 된다.

2. 설정방법
1) SVN 저장소 만들기 & 서버 시작하기
설치가 완료 됐으면 이제 SVN 저장소를 만들고 서버를 시작해야 한다.
SVN 서버를 통해 버젼 관리를 할 프로그램들이 저장되는 폴더를 생성한다.
y:\data\svn_data 폴더를 생성하고 싶다면 하기의 문법으로 생성한다.
 

svnadmin create --fs-type fsfs [생성할 저장소명] 을 입력한다.

여기서는 svnadmin create --fs-type fsfs autosetOrga 라고 입력하였다.

즉, autosetOrga 저장소를 생성하는 것이고 파일시스템 저장소를 사용한다는 의미입니다.

생성된걸 확인하기 위해, svn checkout file:///y:/svn_data/autosetOrga 를 실행해 본다. 체크아웃된 리비전 0. 이라고 나오면 정상적으로 체크아웃됨을 알 수 있다.

svnserve -d -r [저장소경로] 라고 입력함으로써 SVN 서버를 가동한다.

여기서는 svnserve -d -r y:\svn_data 라고 입력 하였다.

참고사항 : svnserve 명령은 어떠한 폴더에서 실행하든 관계없습니다.

2) SVN 사용자 추가하기 (인증부분)

저장소 루트\추가한 저장소 폴더 \conf\passwd 파일을 EditPlus 나 메모장으로 연다. 파일의 설명에도 써 있듯이 매우 간단한 방법으로 인증 정보를 기입하면 된다.
아이디 = 비밀번호 형태로 줄 단위로 입력하면 된다.
foo = mambo 라고 입력하였으므로, 아이디는 foo 이 되고, 비밀번호는 mambo 이 된다.
단, 주의 할점은 [users] 섹션 라벨 이후에 입력해야 한다.
일종의 INI 파일 형태로 보면 된다.
그리고, 인증 정보를 구성하였으니 그 정보를 실제로 써야하는데,
anon-access = read 라고 된 것을 anon-access 를 none 로 변경한다.
설정은 익명 사용자의 접근시 읽기를 허용한 것을 허용하지 않는 것으로 설정을 변경하는 것이다.

auth-access = write 라는 것은 인증 받은 사용자의 경우, 쓰기를 허용한다는 설정이다.
password-db 부분은 앞서 사용자를 추가한 패스워드 정보가 있는 파일의 위치를 설정한다. 기본 값으로 놔두면 된다.

참고 : 그룹 사용자로 묶고자 한다면 authz-db 의 주석을 해제하고, authz 파일을 수정하면 된다.

'소프트웨어 개발' 카테고리의 다른 글

윈도우즈 PC에 SVN설치하여 협업환경 구성하는 방법  (0) 2008.02.19
SVN 로그 분석 유틸리티  (0) 2008.02.08
CVS를 개선한 형상 관리 프로그램 SVN  (0) 2008.02.08
DCOM이란?  (0) 2007.11.07
UDDI란?  (0) 2007.10.10
CVS는 Current Version System의 약자로 각종 문서나 소스코드에 버젼번호를 달아서 관리해주는 형상관리시스템이다. 혹자는 이를 버젼관리 시스템이라고도 부른다.

주로 여러사람이 협업할 때 자료를 공유하는데 많이 사용된다.

일단 CVS는 서버에 소스를 저장하고, 저장할때 마다 차이점과, 버전을 자동으로 기입을 하는 시스템이며, 서버에 저장을 하기 때문에, 여러 사람이 동시 작업을 하고 원격지에서 소스를 받아 재택근무도 할수 있게 도와준다.

반면에 SVN은 CVS와 같은 형상관리시스템입니다. CVS만들던 개발자들이 SVN의 주축세력으로 알고 있다. 즉, CVS를 개선해서 대체하기위해 현재 진행중인 프로젝트이다.

가장 큰 특징을 예로 들으라면 CVS의 경우 파일명 변경이나 디렉토리부분 수정등을 할 경우 기본 버전 히스토리가 날라간다. 그러나 SVN은 파일/디렉토리 부분에 대한 정보도 리비전에 포함되어 관리된다.

'소프트웨어 개발' 카테고리의 다른 글

SVN 로그 분석 유틸리티  (0) 2008.02.08
SVN설치로 형상관리(버젼관리)를 쉽게  (0) 2008.02.08
DCOM이란?  (0) 2007.11.07
UDDI란?  (0) 2007.10.10
WSDL이란 무엇인가?  (0) 2007.10.10

+ Recent posts