티스토리 뷰
1. svn설치
# apt-get install subversion
# svn --version
2. repository 생성
# mkdir /svn
# mkdir /svn/repository
# cd /svn/repository
# svnadmin create test
3. repository 설정
# cd /svn/repository/test/conf
# ll
total 28
drwxr-xr-x 2 root root 4096 Nov 21 02:09 ./
drwxr-xr-x 6 root root 4096 Nov 21 02:09 ../
-rw-r--r-- 1 root root 1080 Nov 21 02:09 authz
-rw-r--r-- 1 root root 885 Nov 21 02:09 hooks-env.tmpl
-rw-r--r-- 1 root root 309 Nov 21 02:09 passwd
-rw-r--r-- 1 root root 4375 Nov 21 02:09 svnserve.conf
3-1. 계정
# vi passwd
...
[users]
# 아이디 = 비번
test = 1
...
3-2. 권한
# vi authz
...
# [/foo/bar]
# harry = rw
# &joe = r
# * =
[/]
test=rw
...
3-3. repository에 설정파일 연결
# vi svnserve.conf
########## 주석제거하기
...
anon-access = read
auth-access = write
...
password-db = passwd
...
authz-db = authz
...
4. svn 설정
# vi /etc/init.d/svnserve
#! /bin/sh
### BEGIN INIT INFO
# Provides: svnserve
# Required-Start: $local_fs $syslog $remote_fs
# Required-Stop: $local_fs $syslog $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start svnserve
### END INIT INFO
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="svnserve"
NAME=svnserve
DAEMON=/usr/bin/$NAME
DAEMON_ARGS="-d -r /svn/repository" ######### 이 부분만 잘 맞추기
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
[ -x "$DAEMON" ] || exit 0
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
. /lib/init/vars.sh
. /lib/lsb/init-functions
do_start()
{
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
|| return 1
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS \
|| return 2
}
do_stop()
{
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
[ "$?" = 2 ] && return 2
rm -f $PIDFILE
return "$RETVAL"
}
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
restart|force-reload)
log_daemon_msg "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
exit 0
# chmod 755 /etc/init.d/svnserve
# update-rc.d svnserve defaults
# service svnserve start
svn://ip:post/test
5. eclipse에서 프로젝트 연동
(서버컴 아닌)개인 로컬에 연동할 프로젝트가 있다 치고.
노란통+(New Repository Location) 클릭
URL, Authentication(User, Password, Save authentication 체크) 적고 Finish
그럼 아무것도 없는 상태.
여기서 trunk, branches, tags 폴더를 추가
repository에 오른쪽클릭-New-Folder...
연동할 프로젝트에 대고 오른쪽클릭-Team-Share Project...
SVN 선택하고 Next
Create a new repository location으로 하면 연동하면서 만들수 있나봄??(다음에 해봐야지)
여기서는 Use existing repository location 선택-연동할 svn서버 선택-Next
URL이 나오는데, Browse...눌러서 trunk에 선택-Finish
commit comment적고 OK