安装步骤如下



1.安装

sudo yum install subversion



查看安装位置

sudo rpm -ql subversion



2.创建版本库

sudo mkdir -p /var/svn
sudo svnadmin create /var/svn/qqtest



3.配置

进入conf目录(该svn版本库配置文件)

  • authz文件是权限控制文件
  • passwd是帐号密码文件
  • svnserve.conf SVN服务配置文件

cd 到项目目录中 查看是否有如下文件夹 ll

centos libz安装 centos安装sz_运维

  1. 服务svnserve.conf,进入 conf 目录
  2. vi svnserve.conf 打开下图 红色标记区注释就行了 不需要过多修改 网上其他的教程有很多修改了其中的东西 我也试过几次 会有意想不到的错误 默认的就是最好的

anon-access = read #匿名用户可读

auth-access = write #授权用户可写

password-db = passwd #使用哪个文件作为账号文件

authz-db = authz #使用哪个文件作为权限文件

realm = /var/svn/qqtest # 认证空间名,版本库所在目录,和之前的一样

centos libz安装 centos安装sz_python_02

  1. 用户密码 passwd 配置,新增用户的用户名和密码

格式用户名 = 密码

qq = qqtest

qq2 = qqtest2

centos libz安装 centos安装sz_运维_03

  1. 权限控制 authz 配置,设置[/]代表根目录下所有的资源
  2. rw 表示有读写的权利
admin = qq,qq2
[/]
@admin = rw

centos libz安装 centos安装sz_shell_04

  1. 启动 svn 服务器
    sudo svnserve -d -r /var/svn
     
    如果报:svnserve: Can't bind server socket: Address already in use
    解决办法:
    使用  “ ps -e|grep svnserve ” 找到服务对应进程编号 ,使用kill 命令,之后再使用启动命令 ,
  2. 查看是否成功启动
    ps -ef | grep vvnserve停止 svn
  3. killall svnserve # 停止进程
  4. 设置svn 服务自启动
  1. 第一步 新建一个 .sh 文件 vi /root/svn_qqtest_auto_start.sh
#!/bin/bash
/usr/bin/svn -d -r /var/svn/qqtest

这里的svnserve路径保险起见,最好写绝对路径,因为启动的时候,环境变量也许没加载。

 which svnserve

  1. 修改该脚本的执行权限

chmod ug+x svn_qqtest_auto_start.sh

最后:加入自动运行

vi /etc/rc.d/rc.local

按i进入编辑模式,在末尾添加脚本的路径,如:

centos libz安装 centos安装sz_svn_05

再按esc,再按两次大写Z,保存退出。好了 完美成功了 现在可以在你的本地链接远程 SVN 了

 



配置 post-commit

利用SVN的POST-COMMIT钩子自动部署代码 我们在开发的过程将代码提交到SVN后使用SVN的hook,通过post-commit脚本,在目 标文件夹根下执行svn update操作,将更新内容同步到测试环境,这样开发调试非常方便。

  1. 当我们安装建立好远端仓库后目录结构如下

centos libz安装 centos安装sz_运维

进入 hooks 目录cd hooks

centos libz安装 centos安装sz_svn_07

我们可以看到有个 post-commit.tmpl 的文件。 这是官方提供的一个 template 。我们直接 copy 这个文件

cp -f post-commit.tmpl post-commit

注意: copy 后的文件没有后缀名称

  1. 编辑 post-commit 文件

shell vi post-commit

删掉除了第一行 #!/bin/sh 之后的所有文件 然后输入
#!/bin/sh

/usr/bin/svn update --username wenpeng --password wp113000 /data/qqtest
# svn 命令路径 + update --username 您的用户名(svn设置的用户名) --password 您的密码(svn设置的密码) 您的服务器代码项目目录

  1. 即将完成 --- 最后一步 -- 修改权限

chmod +x post-commit

  1. Checkout一份代码到您的服务器代码项目目录

svn checkout svn://127.0.0.1/qqtest   /data/qqtest

好了 已经完成了,这样,每次你提交代码的时候,都会执行您自己新建的 post-commit 文件, 自动 up 您的服务器项目代码