在开发中我们往往无法离开版本控制工具,常用的是git和svn。今天我们先搭建一个svn服务器。
首先安装svn
yum install subversion
输入rpm -ql subversion查看安装位置
创建版本库目录 mkdir -p /mydata/laravel(这里的目录自己随意定义,但自己要记住)
创建版本库 svnadmin create /mydata/laravel
cd /mydata/laravel 目录
发现生成几个文件
进入conf目录 配置文件
authz 文件的权限控制文件
passwd 账号密码文件
svnserve.conf svn服务配置文件
设置账号密码 passwd文件 vim passwd 在【users】模块 添加账号密码 hpwm=123456 设置权限 在末尾追加
【/】 hpwm = rw修改svnserve.conf文件 打开几个注释 anon-access = read #匿名用户可读 auth-access =
write #授权用户可写 password-db = passwd #使用哪个文件作为账号文件 authz-db = authz
前面不允许有空格 切记不能有空格 !!!!!
通过命令
svnserve -d -r /mydata/laravel(版本库目录) –listen-port=3691
监听端口(默认3690)
使用
ps aux |grep svn
查看进程是否开启 这样我们的svn就搭建好了,可以本地拉取文件了
但通常我们开发会在本地开发,然后svn提交,然后测试站看效果,这样问题就来了,难道我们提交的代码直接提交到测试站吗? 答案是否定的,我们的代码通常都是 提交到版本库,然后代码更新都是从版本库拉取新的代码。那么如何做到这样的效果呢?
svn 钩子自动部署代码即可帮我们完成这个功能
首先我们在测试站部署测试环境代码,同样代码也是从我们的版本库拉取下来的。
我们进入hooks文件夹里面有post-commit文件模板,我们复制一份出来,命名post-commit 修改权限 chmod -R 0777 post-commit
在里面添加如下代码
#!bin/sh
export LANG=en_US.UTF-8
SVN=/usr/bin/svn (你的svn命令安装在哪 使用 which svn查找)
WEB=/mydata/wechat (你的测试站代码路径,这样你本地提交的代码到版本库会自动拉取到项目里)
$SVN update $WEB --username hpwm --password 123456 (需要指定账户和密码)
这样一个svn服务器就搭建成功了。仅供参考