Subversion(SVN)是一款优秀的集中式版本控制工具,目前国内中小型开发团队还是更偏向用SVN进行代码的管控,当然还有Git,两者之间的区别本文就不再做介绍,需要更多了解可以直接百度。而本文主要讲解如何在CentOS下快速搭建SVN服务器,创建版本仓库,并配置WebHook实现同步部署代码。
一.准备工作
Linux测试服务器环境:
服务器供应商:腾讯云
操作系统:CentOS 7.2 64位
硬件:标准型S2 1核 1GB 5Mbps
若没有条件仅需要学习测试,可以自己装虚拟机。
二.更新系统源(非强制)
三.安装subversion
1.使用yum方式下载subversion进行安装。
yum install subversion
2.安装完成后,会显示Complete!字样,说明已经安装成功,输入命令:
svnserve --version
看到以上图即代表安装无误。
四.创建SVN版本库,并配置SVN账号、权限
1.创建版本目录
mkdir -p /var/svn/testsvn
2.创建版本库
svnadmin create /var/svn/testsvn
3.进入/var/svn/testsvn目录,查看创建好的版本库。
4.进入 conf 文件夹,内有三个文件,分别为:
5.编辑 passwd 文件[命令:vi passwd]。
末尾加入SVN版本库的账号和密码后保存。
格式:用户名 = 用户密码
6.编辑 authz 权限控制文件[命令:vi authz]。
末尾写入:
[/] wigiesen = rw
保存后,代表 wigiesen 用户对该版本库有读写权限。
7.编辑 svnserve.conf 版本库配置文件[命令:vi svnserve.conf]。
<span style="white-space: normal;"></span>
分别将图中5处前的#
号取消,代表开启该配置。同时将:
realm = My First Repository改为realm = /var/svn/testsvn
注:
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #SVN账号文件
authz-db = authz #SVN权限文件
realm = /var/svn #SVN版本库目录
8.启动SVB版本库。
svnserve -d -r /var/svn/
# 若无法启动,说明svn服务已经被占用,
执行 killall svnserve 关掉当前正在执行的SVN进程后即可。
查看SVN版本库是否启动成功
ps aux | grep svn
9.回到Windows下,使用TortoiseSVN检出SVN版本库。
输入之前在 passwd 文件中设置的账号与密码
现在已经可以使用SVN进行提交项目了!
五.设置WebHook,实现提交代码同步部署到网站
这里为了方便展示,不再繁琐的配置web服务器,原理相同。
1.进入 /var/svn/testsvn/ 目录,找到 hooks 文件夹并进入
2.该目录下为SVN预设置的一些钩子模板,无视他另行创建post-commit
文件。
vi post-commit
并写入:
#!/bin/sh
REPOS="$1"
REV="$2"
DIR="/var/www/html" #此处是你需要同步的web目录
export LANG=en_US.UTF-8
CURDATE='date'
echo "Code Deployed By at $CURDATE,$REPOS,$REV" >> /svn/code_deploy.log
#设置好你创建的svn账号和密码
svn update $DIR --username wigiesen --password wigiesen123
3.修改 post-commit 的权限
chmod +x post-commit
4.进入到你所需要同步的web目录 /var/www/html 执行svn检出
svn checkout svn://127.0.0.1/testsvn/
按照提示输入相应的svn账号密码,即可完成检出。
测试同步,已经同步部署了:
蛋仔派对无限蛋币https://www.wzryzs.com/
打卡支持一下
支持一个!我在支持一下
感觉现在好像都是用git了
挑一个没人评论的 ,我就这一条 保证中奖