通过系统默认源安装的subversion最新版本是:1.8x,参见:jessie中subversion,可以通过本方法安装最新版subversion(当前版本是:1.9.7),内容如下:

1、获取WanDisco仓库

# download the GPG key of the repository and add it to apt:
wget http://opensource.wandisco.com/wandisco-debian.gpg -O /tmp/wandisco-debian.gpg
# add downloaded key to apt
apt-key add /tmp/wandisco-debian.gpg
# create apt sources file for wandisco repo
echo "deb http://opensource.wandisco.com/debian/ jessie svn19" > /etc/apt/sources.list.d/wandisco.sources.list

2、安装Subversion

查看源码包Subversion信息:

aptitude show subversion

show_subversion.jpg

没有问题,就可以进行安装:

aptitude install subversion

3、设置Subversion随系统启动

执行完上面的操作,我们的系统里就已经安装好了Subversion,但是无法做到系统启动时自动启动Subversion,这个问题很容解决,我们可以在/etc/init.d目录中创建svnserver文件。

cd /etc/init.d
touch svnserver
vim svnserver

设置如下内容:

#! /bin/sh -e
### BEGIN INIT INFO
# Provides:             subversion
# Required-Start:       $network
# Required-Stop:        $network
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Start daemon at boot time
# Description:          Enable service provided by daemon.
### END INIT INFO

DAEMON=/usr/bin/svnserve

test -x $DAEMON || exit 0

#RUNDIR=/tmp/run
#PIDFILE=$RUNDIR/svnserve.pid
WORKROOTDIR=/var/lib/svn
LOGFILE=/tmp/log/svnserve.log
CONFIGFILE=$WORKROOTDIR/conf/svnserve.conf
OPTIONS="-d -T -r $WORKROOTDIR --log-file $LOGFILE --config-file $CONFIGFILE"

NAME=svnserve
GROUP=www-data
USER=www-data

case "$1" in
  start)
        echo -n "Starting $NAME: "
        start-stop-daemon --start --quiet --oknodo --chuid $GROUP:$USER --exec $DAEMON -- $OPTIONS
        echo " $NAME."
        ;;
  stop)
        echo -n "Stopping $NAME: "
        start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
        echo " $NAME."
        ;;

  restart|force-reload)
        ${0} stop
        ${0} start
        ;;
  *)
        echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}"
        exit 1
        ;;
esac

exit 0
# 测试 svnserve service
/etc/init.d/svnserve start
# 开机自动启动
update-rc.d svnserve defaults

SVN使用

创建svn仓库

svnadmin create {svn_repository_path}

修改配置仓库svnserve.conf

vim {svn_repository_path}/conf/svnserve.conf

配置内容说明:

#去掉"#[general]"前面的#号
#匿名访问的权限,可以是read,write,none,默认为read
anon-access = none
#认证用户的权限,可以是read,write,none,默认为write
auth-access = write
#密码数据库的路径,同样,去掉前面的“#
password-db = passwd

svnserve.conf配置说明:

anon-access = read
auth-access = write
password-db = passwd

anon-accessauth-access分别指定匿名和有权限用户的权限,默认给匿名用户只读的权限,如果想拒绝匿名用户的访问,只需把 read 改成 none 就能达到目的。
password-db后的 passwd 则为定义用户名及密码的文件路径。这个文件默认跟 snvserve.conf 在同一个目录。
友情提示:所有的行都必须顶格,否则报错!

修改配置文件passwd

vim {svn_repository_path}/conf/passwd

配置内容:

[users]
your_username = your_password

重启Subversion服务

# 停止服务
killall svnserve

# 启动服务
svnserve -d -r {svn_repository_path}
# -d:表示在后台运行
# -r:指定服务器的根目录

启动完成后,就可以通过svn://服务器ip(or域名)访问svn服务器了。

多仓库

通过上面方法只能创建一个仓库,通常我们需要创建多个仓库,存放各个项目的代码。

  1. 创建目录

    mkdir {svn_repository_root}
  2. 创建仓库

    svnadmin create {svn_repository_root}/project1
    svnadmin create {svn_repository_root}/project2
    svnadmin create {svn_repository_root}/project3
  3. 配置各个仓库的用户名、密码权限
    由于各个仓库是独立的是需要单独为每个仓库配置用户名密码的
  4. 启动SVN服务

    svnserve -d -r {svn_repository_root}

参考文章:

标签: subversion, svn

添加新评论