본문 바로가기
Tip & Tech/Tech

[SVN] 프로젝트 형상관리를 위한 SVN(subversion) 설치방법 / 다중 저장소 설정 / 리눅스 SVN 설치

by 나비와꽃기린 2016. 6. 28.

1. 설치 및 저장소 지정

1.1 설치 명령어 실행

#yum –y install subversion

 

1.2 Repository 생성

#mkdir /home/mwSVN  -- 해당 경로로 루트 저장소 생성

#cd /home/mwSVN

 

1.3 svn 접속 시 사용되는 저장소 지정

#svnadmin create --fs-type fsfs /home/mwSVN/[저장소명]

 

2. 접속권한 설정

2.1 svnserve.conf 파일 설정

#cd /home/mwSVN/[저장소 명] /conf

#vi 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 = read    --익명 사용자 읽기 여부

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 directory containing

### this configuration file.

### If SASL is enabled (see below), this file will NOT be used.

### 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 the

### directory containing this file.  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 = MW First Repository

 

[sasl]

### This option specifies whether you want to use the Cyrus SASL

### library for authentication. Default is false.

### This section will be ignored if svnserve is not built with Cyrus

 

 

2.2 svn 접속을 위한 계정 추가

#cd /home/mwSVN/[저장소 명] /conf

#vi passwd

### 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

mkgil = mkgil0415  -- 아이디=패스워드

 

계정추가는 passwd 파일을 설정하면 된다.

 

2.3 사용자 권한 지정

### This file is an example authorization file for svnserve.

### Its format is identical to that of mod_authz_svn authorization

### files.

### As shown below each section defines authorizations for the path and

### (optional) repository specified by the section name.

### The authorizations follow. An authorization line can refer to:

###  - a single user,

###  - a group of users defined in a special [groups] section,

###  - an alias defined in a special [aliases] section,

###  - all authenticated users, using the '$authenticated' token,

###  - only anonymous users, using the '$anonymous' token,

###  - anyone, using the '*' wildcard.

###

### A match can be inverted by prefixing the rule with '~'. Rules can

### grant read ('r') access, read-write ('rw') access, or no access

### ('').

 

[aliases]

# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

 

[groups]

# harry_and_sally = harry,sally

# harry_sally_and_joe = harry,sally,&joe

 

# [/foo/bar]

# harry = rw

# &joe = r

# * =

 

# [repository:/baz/fuz]

# @harry_and_sally = rw

# * = r

 

[/]

mkgil=rw

*=r

 

3. SVN 서버 실행

3.1 SVN 서버 동작 확인

#ps –ef | grep svnserver

 

3.2 SVN 서버 시작

#svnserve -d -r  /home/mwSVN/[저장소명]

 

3.3 SVN 서버 중지

# kill -9 [PID]



4. 다중 저장소 설정 하는법 (단일 저장소에 멀티 프로젝트 관리)

(1) 루트 저장소 생성

# mkdir /data/svnrepo

 

(2) 루트 저장소 아래에 개별 저장소 생성

(여러 프로젝트를 같은 디렉토리 레벨로 생성하여 관리하기 위함)

# svnadmin create –fs-type fsfs /data/svnrepo/A_Src

# svnadmin create –fs-type fsfs /data/svnrepo/B_Src

 

(3) 각각의 저장소의 conf 디렉토리 및 설정파일 변경

각각의 저장소마다 셋팅값을 설정해야 한다는 번거로움이 있지만,

다른 셋팅값을 줌으로써 사용자를 달리 지정할 수 있다.

 

(4) 루트저장소 명으로 서버 시작

# svnserve –d –r /data/svnrepo

 

(5) Eclipse에서 svn repository 추가


(6) 그 다음부터는 Advanced로 생성해야 충돌을 막을 수 있다.

댓글0