linux服务器中svn的安装与配置

开发过程中,对代码的合理有效的管理是提高开发效率的必备手段。选择一款合适的版本管理工具就成为了不可或缺的步骤。本文章将记录centos中svn的配置与管理。

  1. 安装svn

一般centos系统中会 预装svn管理软件。登录centos系统后,在控制台输入以下命令查询是否安装svn。

yum update 
rpm -qa |grep  subversion

这里写图片描述
如果显示如图所示说明系统中已经安装了svn,如果没有出现上面的界面,需要安装svn。执行以下代码

yum install subversion

安装完成之后查看是否安装成功

svnserve --version

显示以下说明安装成功

这里写图片描述

  1. 初始化项目库

     2.1创建版本文件存放位置
    
mkdir /home/svn
mkdir /home/svn/webapp
2.2创建成功之后执行以下代码
svnadmin create /home/svn/webapp
ls

出现以下文件和文件夹说明仓库初始化成功
这里写图片描述

说明 该目录下的conf文件夹下的svnserve.conf为svn的配置文件。
  1. 配置文件修改
    这里写图片描述

    3.1 anon-access 控制非鉴权用户访问版本库的权限。取值范围为”write”、”read”和”none”。
    即”write”为可读可写,”read”为只读,”none”表示无访问权限。
    缺省值:read

    3.2 auth-access 控制鉴权用户访问版本库的权限。取值范围为”write”、”read”和”none”。
    即”write”为可读可写,”read”为只读,”none”表示无访问权限。
    缺省值:write

    3.3 password-db 指定用户名口令文件名。除非指定绝对路径,否则文件位置为相对conf
    目录的相对路径。
    缺省值:passwd

    3.4 authz-db 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。
    除非指定绝对路径,否则文件位置为相对conf目录的相对路径。
    缺省值:authz

    3.5 realm 指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的
    认证域相同,建议使用相同的用户名口令数据文件。
    缺省值:一个UUID(Universal Unique IDentifier,全局唯一标示)。
    svn常用配置:
    1、svnserve.conf:
    [general]
    anon-access = read
    auth-access = write
    password-db = passwd
    authz-db = authz

  2. 添加用户
    在svn中添加用户并设置权限,修改conf文件夹下的authz和passwd文件添加代码

    passwd: 
                [users] 
                admin=admin
    这里用户密码以=号相连。            
    `authz: 
            [groups] 
            [/] 
            admin= rw  `       

设置admin的权限为rw,即可读可写。只读权限 r。

添加用户完成之后,就可以在svn客户端进行关联svn库的check out操作检查是否配置成功
出现以下界面说明配置成功
这里写图片描述

  1. 设置svn服务自启动
    5.1在Linux服务器跟目录((/root路径下))创建一个脚本文件
    # touch svn.sh
    5.2 进入脚本文件
    # vim svn.sh
    5.3添加一下内容
    #!/bin/bash
    /usr/bin/svnserve -d -r /home/svn/webapp
    绝对路径怎么查?
    # which svnserve
    5.4 改该脚本的执行权限
    # chmod 777 svn.sh
    5.5 加入自动运行
    # vi /etc/rc.d/rc.local
    在末尾添加脚本的路径:
    /root/svn.sh
    5.6 重启Linux服务器,重启后查看svn服务器是否已经开启
    # ps -ef|grep svnserve
    如果显示以下信息表示svn已经开启了:
    tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN

  2. svn关联web服务器自动提交数据

在svn的目录hooks下面执行以下代码

touch post-commit
vim post-commit

在新建的文件中添加一下内容:

#!/bin/bash
REPOS="$1"
REV="$2"
export LANG=zh_CN.UTF-8
echo "Code Deployed at `date "+%Y-%m-%d %H:%M"`" >> /home/svn/dl_test/hooks/deploy_log
/usr/local/subversion/bin/svn update --username ****** --password ****** /home/www/data/dl_test

参考:

https://blog.csdn.net/benben0503/article/details/51483286

https://www.cnblogs.com/gaohj/p/3154448.html

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页