Subversion Home: http://subversion.tigris.org/project_packages.html
참고자료:
[svn 구조]
[svn 설치]
먼저 subversion(svn)을 설치하자.
정상적으로 설치되었는지 확인하자.
[svn 설정 - 필수 설정]
사용자 계정 svn을 생성하고, svn 저장소를 생성하자.
아래의 경우 저장소(repository는 /svn 이다.
[root]$ chown -R root:root /svn
그리고 프로젝트폴더를 생성하자. 아래의 경우 프로젝트 이름이 project 가 된다.
권한을 설정하자. /svn/project/conf/svnserve.conf 의 주석을 제외한 부분이 아래와 같아야 한다.,
realm 은 리파지토리의 도메인명(외부에서 볼 때의 이름)이라고 할 수 있다.
anon-access = none
auth-access = write
password-db = passwd
# authz-db = authz
realm = bage
[sasl]
# use-sasl = true
#min-encryption = 0
#max-encryption = 256
계정을 추가하자. /svn/project/conf/passwd 의 내용을 모두 지우고, 아래처럼 입력.
아래의 경우 id는 bage 이며, 암호는 xxxxx 가 된다.
bage= xxxxx
* 만약 개인용 서버가 아니라면 sasl을 이용하여 인증하는 방식을 이용하자. 왜냐햐면 passwd 방식(위 방식)은 암호를 누구나 확인할 수 있어서 내 리파지토리에 다른 사람이 접근할 가능성이 높기 때문이다.
[svn 설정 - 리눅스 서비스 등록]
/etc/sysconfig/subversion 을 아래 내용으로 만들자.
OPTIONS="--threads --root /svn" 에서 /svn은 저장소 위치이다.
#
# To pass additional options (for instace, -r root of directory to # server) to the svnserve binary at startup, set OPTIONS here.
#
#OPTIONS=
OPTIONS="--threads --root /svn"
/etc/init.d/subversion 를 만들자.
SYSCONFIG= 에 위에서 만든 파일의 경로를 적는다.
#
# /etc/rc.d/init.d/subversion
#
# Starts the Subversion Daemon
#
# chkconfig: 2345 90 10
# description: Subversion Daemon
# processname: svnserve
source /etc/rc.d/init.d/functions
[ -x /usr/bin/svnserve ] || exit 1
### Default variables
SYSCONFIG="/etc/sysconfig/subversion"
### Read configuration
[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"
RETVAL=0
prog="svnserve"
desc="Subversion Daemon"
start() {
echo -n $"Starting $desc ($prog): "
daemon $prog -d $OPTIONS
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
echo
}
stop() {
echo -n $"Shutting down $desc ($prog): "
killproc $prog
RETVAL=$?
[ $RETVAL -eq 0 ] && success || failure
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
RETVAL=$?
;;
condrestart)
[ -e /var/lock/subsys/$prog ] && restart
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart}"
RETVAL=1
esac
exit $RETVAL
서비스로 등록하자.
[root]$ cd /etc/init.d/
[root]$ chkconfig --add subversion && chkconfig subversion on
[svn 서버 시작(서비스모드)]
서비스를 시작하자.
서비스상태와 등록 여부를 확인하자.
[svn 접속 테스트]
클라이언트 접속 테스트를 하자.
subversive -> 추천(다음 이클립스에 포함될 예정)
subclipse -> 비추천(버그 많음)
[참고] 윈도우용 SVN 클라이언트
tortoiseSVN -> 추천(svn 폴더관리 및 cleanup에 유용함)
sasl을 이용하여 암호화 하여 저장하는 방식을 이용해 보자.
/svn/project/conf/svnserve.conf 파일에서 아래 2줄을 찾아 passwd 부분은 주석을 sasl부분은 true로 변경하자.
anon-access = none
auth-access = write
# password-db = passwd
# authz-db = authz
realm = bages
[sasl]
use-sasl = true
#min-encryption = 0
#max-encryption = 256
sasldb에 계정을 추가해야 한다. 위와 같은 경우 아래처럼 한다.
도메인이 bages 에 소속되는 계정 bage을 생성하는 명령이다.
( 만약 아래 명령이 없다고 나오면, "yum install cyrus-sasl*" 명령을 통하여 관련 패키지를 먼저 설치하자.)
[root]$ sasldblistusers2
tomcat@tomcats: userPasswd
확실히 하기 위해 passwd 파일을 아예 지워버리자.
앞으로는 sasldb를 이용하므로. ^^
이제 서버 관리자도 암호를 확인할 수 없다.
마음 편하게 svn을 사용하자.