Linux 安装svn 、设置钩子,更新项目同步到svn

检查已安装版本

#检查是否安装了低版本的SVN

1.1          rpm -qa subversion

#卸载旧版本SVN

检查已安装版本

#检查是否安装了低版本的SVN

1

rpm -qa subversion

#卸载旧版本SVN

1

yum remove subversion

一.安装SVN

1

yum -y install subversion

 

一.安装SVN

1

yum -y install subversion

     

代码库创建

SVN软件安装完成后还需要建立SVN库

1

2

mkdir -p /var/svn/svnrepos/

svnadmin create /www/svnrepos/test

执行上面的命令后,自动建立svnrepos库,查看/www/svnrepos/test 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。

配置代码库

进入上面生成的文件夹conf下,进行配置

1

cd /var/svn/svnrepos/test/conf

用户密码passwd配置

1

2

cd /var/svn/svnrepos/test/conf

vim passwd

修改passwd为以下内容:

1

2

3

4

[users]

# harry = harryssecret

# sally = sallyssecret

cqh=123456

权限控制authz配置

1

vim authz

目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容:

1

2

3

#设置[/]代表根目录下所有的资源

[/]

cqh=rw

服务svnserve.conf配置

1

vim svnserve.conf

1、将前面的#去掉

Linux 安装svn 、设置钩子,更新项目同步到svn

启动SVN

1

svnserve -d -r /var/svn/svnrepos

查看SVN进程

1

2

[[email protected] conf]# ps -ef|grep svn|grep -v grep

root     25793     1  0 Feb17 ?        00:00:00 svnserve -d -r /var/svn/svnrepos/

检测SVN 端口  

1

2

[[email protected] conf]# netstat -ln |grep 3690

tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN

停止重启SVN

1

2

[[email protected] password]# killall svnserve    //停止

[[email protected] password]# svnserve -d -r /var/svn/svnrepos/ // 启动

 

测试 (阿里云服务器  ESC  要设置安全组 3690)

Linux 安装svn 、设置钩子,更新项目同步到svn

SVN服务已经启动,使用客户端测试连接。 
客户端连接地址:svn://ip/test
用户名/密码: cqh/123456
测试创建文件夹等操作。

二.设置钩子自动更新

实现SVN与WEB同步,可以CO一个出来,也可以直接用自动更新web目录的方法,我们要在svn版本库中配置钩子来实现,就是创建一个post-commit的配置文件,对其进行简单的配置,简简单单的四步就可以实现Linux下SVN自动更新web目录配置。 
第一步:建立你的web程序目录

1

mkdir /var/www/html/test

进入你建立的web程序目录(svn checkout可以简写为co)

1

2

svn checkout svn://ip/test //不重命名文件夹,直接在当前目录下检出

svn checkout svn://localhost/test svntest //检出文件并且重命名文件夹

 第二步:在项目库的 hooks/ 目录下新建 post-commit 文件 【钩子脚本】

添加脚本内容如下

1

2

3

4

5

#!/bin/sh
export LANG=en_US.UTF-8
DIR=/var/www/html/test               #要更新的目录
svn update $DIR --username '账号' --password '密码' --no-auth-cache 

第三步:让post-commit有执行的权限

1

chmod a+x post-commit