CentOS7下搭建SVN服务,本地提交代码自动同步到Web目录

在CentOS7下搭建SVN服务,实现本地提交代码自动同步到Web目录。

1、安装SVN服务
[root@linuxidc ~]# yum -y install subversion

2、查看svnserve安装目录
[root@linuxidc ~]# whereis svnserve
svnserve: /usr/bin/svnserve /usr/share/man/man8/svnserve.8.gz

3、查看是否安装成功,如果出现以下提示则安装成功
[root@linuxidc ~]# svnserve -h
usage: svnserve [-d | -i | -t | -X] [options]

Valid options:
-d [--daemon] : daemon mode
-i [--inetd] : inetd mode
-t [--tunnel] : tunnel mode
-X [--listen-once] : listen-once mode (useful for debugging)
-r [--root] ARG : root of directory to serve
-R [--read-only] : force read only, overriding repository config file
--config-file ARG : read configuration from file ARG
--listen-port ARG : listen port
....

4、创建版本库
[root@linuxidc /]# vi /etc/sysconfig/svnserve
# OPTIONS is used to pass command-line arguments to svnserve.
#
# Specify the repository location in -r parameter:
OPTIONS="-r /var/svn"    #默认版本库位置

4.1)[root@linuxidc /]# mkdir /var/svn    #可自定义目录
  4.2)[root@linuxidc /]# svnadmin create /var/svn/linuxidc.net

5、配置
  5.1)新增用户
    [root@linuxidc /]# vi /var/svn/linuxidc.net/conf/passwd
    [users]
    # harry = harryssecret
    # sally = sallyssecret
    #
    linuxidc = www.linuxidc.net       #用户名=用户密码
  5.2)编辑用户权限
    [root@linuxidc /]# vi /var/svn/linuxidc.net/conf/authz
    [/]
    linuxidc = rw                        #授予linuxidc用户对根目录的读写权限,也可指定子目录
  5.3)编辑svnserve.conf
    [root@linuxidc /]# vi /var/svn/linuxidc.net/conf/svnserve.conf
    anon-access = none         #控制非鉴权用户访问版本库的权限
    auth-access = write           #控制鉴权用户访问版本库的权限
    password-db = passwd     #指定用户名口令文件名
    authz-db = authz              #指定权限配置文件名
    realm = linuxidc.net           #指定版本库的认证域,即在登录时提示的认证域名称
    !!! 以上五项不仅要去掉前面的#号,而且还要删除前面的空格,不然会报 “xxxxx: Option expected”错误 !!!

6、启动SVN
[root@linuxidc /]# systemctl start svnserve.service

7、设置开机自启
[root@linuxidc /]# systemctl enable svnserve

8、查看SVN端口,并设置防火墙开放其端口
[root@linuxidc /]# ss -tnlp | grep svnserve
LISTEN 0 7 *:3690 *:* users:(("svnserve",pid=1869,fd=3))
[root@linuxidc /]# firewall-cmd --permanent --add-service=telnet
[root@linuxidc /]# firewall-cmd --permanent --add-port=3690/tcp
[root@linuxidc /]# firewall-cmd --reload

9、解决SVN报“xxxxx: permission denied”错误
[root@linuxidc /]# systemctl stop svnserve.service
[root@linuxidc /]# killall svnserve
[root@linuxidc /]# svnserve -d -r /var/svn/     #以root用户运行

10、在Win10下载安装TortoiseSVN
checkout时填写的url: svn://www.linuxidc.net/linuxidc.net              #svn://your/server/addr/版本库名
认证用户名:linuxidc
认证密码:www.linuxidc.net

11、提交代码自动同步到WEB服务目录
[root@linuxidc html]# cp /var/svn/linuxidc.net/hooks/post-commit.tmpl /var/svn/linuxidc.net/hooks/post-commit
[root@linuxidc html]# vi /var/svn/linuxidc.net/hooks/post-commit
!!!把文件里所有行注释掉,添加如下关键代码:!!!
cd /LNMP/nginx/html
svn co file:///var/svn/linuxidc.net/ #checkout本地svn版本库, 如果WEB服务与SVN服务不在同一主机,则用http://svn/url/svn_name
svn cleanup
svn up /LNMP/nginx/html/linuxidc.net/ --username linuxidc --password 123456 --no-auth-cache

更多Subversion (SVN)相关教程见以下内容

Subversion (SVN) 的详细介绍:请点这里
Subversion (SVN) 的下载地址:请点这里

相关推荐