一、安装svn服务器

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

查看svn 安装位置,可以用以下命令:

[root@svnserver ~]# rpm -ql subversion
/etc/subversion
/etc/sysconfig/svnserve
/run/svnserve
/usr/bin/svn
/usr/bin/svnadmin
/usr/bin/svndumpfilter
/usr/bin/svnlook
/usr/bin/svnrdump
/usr/bin/svnserve
/usr/bin/svnsync
/usr/bin/svnversion
/usr/lib/systemd/system/svnserve.service
/usr/lib/tmpfiles.d/svnserve.conf
/usr/share/bash-completion/completions/svn
...
..
...

二、创建版本库目录(此仅为目录,为后面创建版本库提供存放位置

选择在var路径下创建版本库,当前处于根目录下,一次性创建如下:

[root@svnserver ~]# mkdir /var/svnrepos

三、创建svn 版本库

在第二步建立的路径基础上,创建版本库,命令如下:

[root@svnserver ~]# svnadmin create /var/svnrepos/dujie

(dujie)为预期的版本库名称,可自定义
创建成功后,进入dujie目录下

[root@svnserver ~]# cd /var/svnrepos/dujie/

进入目录,可以看见如下文件信息

[root@svnserver dujie]# ll
total 8
drwxr-xr-x 2 root root  54 Aug 26 08:45 conf
drwxr-sr-x 6 root root 233 Aug 26 08:45 db
-r--r--r-- 1 root root   2 Aug 26 08:45 format
drwxr-xr-x 2 root root 231 Aug 26 08:45 hooks
drwxr-xr-x 2 root root  41 Aug 26 08:45 locks
-rw-r--r-- 1 root root 229 Aug 26 08:45 README.txt

四、配置修改

进入已经创建好的版本库目录下,也就是上面说的创建的dujie,进入conf

[root@svnserver dujie]# cd conf/

conf目录下,一共存放三份重要的配置文件,如下:

[root@svnserver conf]# ll
total 12
-rw-r--r-- 1 root root 1094 Aug 26 08:46 authz
-rw-r--r-- 1 root root  324 Aug 26 08:46 passwd
-rw-r--r-- 1 root root 3074 Aug 26 08:48 svnserve.conf

authz: 负责账号权限的管理,控制账号是否读写权限
passwd: 负责账号和密码的用户名单管理
svnserve.conf : svn服务器配置文件

  1. 编辑authz 文件(注意:[/]也是必须的)

    [/] :表示根目录,即/var/svnrepos
    dujie = rw; 表示于用户dujie对跟目录具有读写权限

在这里插入图片描述

  1. 编辑passwd文件
    在这里插入图片描述
    如上所示,用户名为dujie,认证密码为123456

  2. 编辑svnserve.conf 文件(注意:配置的前面不能有空格,一定要定格写)
    在这里插入图片描述

anon-access = none :表示禁止匿名用户访问
auth-access = write:表示授权用户拥有读写权限
password-db = passwd:指定用户名口令文件,即passwd文件。
authz-db = authz:指定权限配置文件,即authz文件。
realm = /var/svnrepos:指定认证域,即/var/svnrepos目录。

五、防火墙开启(这里以iptables防火墙为例)

多数情况下服务器安装完成,配置完成以后,无法连接svn服务器,均是防火墙问题【注意:如果是阿里云,腾讯云的服务器,还需要在安全组添加端口开启规则】

vim /etc/sysconfig/iptables

添加配置

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT

保存退出

systemctl restart iptables.service #重启防火墙使配置生效

六、启动svn服务器

svnserve -d -r /var/svnrepos

启动成功后,可以用ps -aux 查看服务器启动是否成功

[root@svnserver conf]# ps -ef | grep 'svnserve'
root       8604      1  0 09:36 ?        00:00:00 svnserve -d -r /var/svnrepos/
root       9379   8219  0 09:56 pts/0    00:00:00 grep --color=auto svnserve

七、客户端访问svn服务器

在windows 客户端,输入地址:svn://ip地址:3690:xxxx(ip地址为linux的ip,xxxx为上面创建的版本库的名称,3690位svn默认端口)
弹出输入用户名和密码输入即可访问
或者在linux服务器输入命令测试

svn co svn://ip地址:3690/xxxx

遇到问题小结:
问题1:执行svn命令:svn co svn://ip地址:3690/xxxx报错如下
在这里插入图片描述
这是因为修改svnserve.conf 时,打开注释时,配置的前面有空格,应该定格写。修改完成后即可

问题2:输入账号密码后,提示svn:Authorization failed 解决方法
把authz文件[/] 改为[]试试

mac 电脑客户端连接方式:
下载cornerstone svn客户端
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述