본문 바로가기
5.Linux

8. [CentOS7] SVN 설치 및 설정

by 갓대희 2018. 2. 1.
반응형

[CentOS7] SVN 설치 및 설정


안녕하세요. 갓대희 입니다. 이번 포스팅은 [SVN 설치 및 설정] 입니다. :) 

▶ svn

 - SVN은 SubVersion의 줄임말로 형상관리/소스 관리 툴이다

 - 리눅스 subversion 패키지는 서버 + 클라이언트


▶ svn 설치 여부 확인 및설치




[root@goddaehee ~]# svn

-bash: svn: command not found

[root@goddaehee ~]# rpm -qa | grep subversion 



위와같이 뜨는 경우 svn 설치되어 있지 않다. yu을 통해 설치 진행.




[root@goddaehee ~]# yum -y install subversion






▶ svn 저장소 생성 및 설정하기

 -1. 저장소 생성



mkdir 폴더경로

cd 폴더경로

svnadmin create --fs-type fsfs 저장소명 



ex)


[root@goddaehee ~]# mkdir -p /svn/repos

[root@goddaehee ~]# cd /svn/repos

[root@goddaehee repos]# svnadmin create --fs-type fsfs /svn/repos

[root@goddaehee repos]# ll

total 24

drwxr-xr-x 2 root root 4096 Feb  1 16:52 conf

drwxr-sr-x 6 root root 4096 Feb  1 16:43 db

-r--r--r-- 1 root root    2 Feb  1 16:43 format

drwxr-xr-x 2 root root 4096 Feb  1 16:43 hooks

drwxr-xr-x 2 root root 4096 Feb  1 16:43 locks

-rw-r--r-- 1 root root  229 Feb  1 16:43 README.txt



 -2. svnserve.conf 수정


기존 파일 샘플



svnserve.conf 파일을 svnserve.conf.old 로 변경하여 보존해두고 새로 작성한다.



[root@goddaehee ~]# cd /svn/repos/conf/

[root@goddaehee conf]# cat svnserve.conf (vi svnserve.conf)

[root@goddaehee conf]# mv svnserve.conf svnserve.conf.old



방법1) vi svnserve.conf

다음 내용 입력 



[general]

#익명 접근의 권한은 none 없음

anon-access = none 


#인증 접근의 권한은 write 읽기/쓰기

auth-access = write


#사용자 패스워드 저장 파일 위치

password-db = passwd


#프로젝트 명칭

realm = My_First_Repository


#인증 접근의 권한 설정 파일 위치

authz-db = authz




방법2


[root@goddaehee ~]# echo '[general]'

[root@goddaehee ~]# echo 'anon-access = none'

[root@goddaehee ~]# echo 'auth-access = write'

[root@goddaehee ~]# echo 'password-db = passwd'

[root@goddaehee ~]# echo 'authz-db = authz'



 -3. /etc/sysconfig/svnserve 생성

이 파일을 생성해주어야 service svnserve start/stop이 가능하다.


방법1) vi /etc/sysconfig/svnserve


기존 파일 샘플




[root@goddaehee ~]# vi /etc/sysconfig/svnserve


# OPTIONS is used to pass command-line arguments to svnserve.

#

# Specify the repository location in -r parameter:

OPTIONS="--threads --root /svn/repos"




방법2)

echo 'OPTIONS="--threads --root 저장소최상위폴더"' > /etc/sysconfig/svnserve



[root@goddaehee ~]# echo 'OPTIONS="--threads --root /svn/repos"' > /etc/sysconfig/svnserve





▶ 계정 설정


svn는 OS계정이 아니라 자체 계정을 사용한다.

해당 저장소의 conf 디렉토리에 있는 passwd를 편집하여 계정을 등록한다.

패스워드 분실시에도 이 파일을 열어보면 된다.

passwd 파일을 passwd.old 로 이름을 변경하여 보존해두고 새로 작성한다.


 - passwd 확인



[root@goddaehee conf]# vi passwd





 - passwd 확인 및 설정



[root@goddaehee conf]# mv passwd passwd.old

[root@goddaehee conf]# vi passwd


[users]

test1 = testgogo1

test2 = testgogo2



 - 혹시 (optional) 권한 없음 오류시에는

/svn/repos/conf/authz 파일 마지막에 아래와 같이 계정 권한을 추가한다.

[/]

test1 = rw

test2 = rw



▶ 서비스 시작



[root@goddaehee conf]# service svnserve start

Redirecting to /bin/systemctl start svnserve.service

[root@goddaehee conf]#


[root@goddaehee conf]# ps -ef | grep svnserve | grep -v grep

root     17869     1  0 17:22 ?        00:00:00 /usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid --threads --root /svn/repos


[root@goddaehee conf]# netstat -anp | grep svnserve

tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      17869/svnserve   



 - 기본 포트는  3690

 - 다른 포트로 변경하려면 /etc/sysconfig/svnserve를 수정

 - 접속 URL = svn://서버IP/경로 이다.



▶ 재부팅시 자동시작 설정[편집]


[root@goddaehee conf]# chkconfig svnserve on

Note: Forwarding request to 'systemctl enable svnserve.service'.

Created symlink from /etc/systemd/system/multi-user.target.wants/svnserve.service to /usr/lib/systemd/system/svnserve.service.



▶ 관련 용어

Repository : 프로젝트 파일 및 변경 정보가 저장되는 장소

Import : 빈 Repository에 맨 처음 파일들을 채우는 것

Export : 버전 관리 파일들을 뺀 순수 파일만 빼내는 것

Checkout : 저장소에서 최신 버전의 소스코드를 최초로 받아오는 것 / Repository에서 프로젝트 관련 파일들을 받아온다

Update : 로컬 저장소에 있는 파일들을 저장소의 최신 버전으로 받아 오기

Commit : 로컬 저장소의 변경된 내용을 서버로 전송 / Checkout한 파일의 수정사항을 갱신

Revert : 로컬 저장소의 내용을 이전 상태로 돌림

Add : 버전관리 대상으로 파일 등록

Trunk : 개발 소스를 commit 했을 때 개발 소스가 모이는 곳 / 프로젝트에서 가장 중심이 되는 디렉토리, 소스와 파일 포함

Branch : trunk에서 분리/복사한 소스로 버전별 배포판을 만들거나 trunk와 별도로 운영환경을 위한 안정화된 소스 관리 목적으로 사용

Tag : 특정 시점의 상태 보존 목적으로 사용 장기적으로 1.0, 1.1 등 버전 별로 소스 코드를 따로 저장, 특정 시점에서 프로젝트의 스냅샷을 찍어두는 것




반응형

댓글2