RT,3月1日的学习笔记分享给有需要的人,凌晨3点了,睡觉比排版重要,凑合着看吧!多花了2分钟替换掉真实的用户信息
【阿里云ECS部署SVN版本迭代控制器以及使网站同步更新的钩子程序】
可能需要安装的程序:
# vim好用的代码编辑器
[root@miniblog ~]# yum install vim
# 开始安装SVN
[root@miniblog ~]# yum install subversion
# 新建一个SVN文件夹
[root@miniblog ~]# mkdir /var/svn
# 创建-名为SVNS的仓库
[root@miniblog ~]# svnadmin create /var/svn/svns
# 编辑svns仓库的配置信息:修改svns仓库下conf文件夹里的三个文件(authz
、passwd、svnserve.conf),快捷键Shift+:然后输入wq回车保存并退出
[root@miniblog ~]#vim /var/svn/svns/conf/authz
[root@miniblog ~]#vim /var/svn/svns/conf/passwd
[root@miniblog ~]#vim /var/svn/svns/conf/svnserve.conf
【authz文件】
[groups]
# 用户组名 =用户名1,用户名2...
zebra=admin,admin2
## 单仓库路径[/],多仓库路径[仓库名称:/]
[/]
## 用户名 = rw(可读写)
admin3 = rw
## @用户组名 = rw(可读写)
@zebra=rw
【passwd文件】
[users]
## 用户名 = 密码
admin = 123456
admin2 = root
admin3 = root
【svnserve.conf文件】
[general]
## 禁止匿名用户访问,read可读
anon-access =none
## 授权用户的访问控制,none禁止,write可写
auth-access =write
## 开启认证文件
password-db =passwd
## 开启授权文件
authz-db =authz
## 认证空间名,版本库所在目录
realm =/var/svn/svns
【已经完成最基本的安装,可以测试一下了】
# 启动/挂起svns仓库服务
[root@miniblog ~]# svnserve -d -r /var/svn/svns
# 检查进程中是否开启成功
[root@miniblog ~]# ps -A|grep svnserve
# 远程SVN检出
svn://公网IP/
# 本地检出到WEB站点,我的路径:/var/www
# 手动-首次检出版本库指令(svn_bin_路径 +co语法 +仓库路径 +检出到目标路径 +用户名 +密码 +无-身份验证-缓存)
[root@miniblog ~]# /usr/bin/svn co svn://localhost/ /var/www --username admin --password 123456 --no-auth-cache
# 手动-更新web站点指令:
[root@miniblog ~]# /usr/bin/svn up /var/www --username admin --password 123456 --no-auth-cache
【钩子程序实现WEB站点自动同步】
例如:当一个用户执行完一个 commit ,操作之后,让hook去自动同步更新测试服务器的文件,hook文件通常位于服务器的svn版本库的hooks目录下,在hooks目录下会有一堆后缀为tmpl的文件。
注意:这些文件只是一些模板或者说明性的示例文件,它们并不会被执行。
【复制一份再编辑】
[root@miniblog ~]# cp /var/svn/svns/hooks/post-commit.tmpl /var/svn/svns/hooks/post-commit
[root@miniblog ~]# vim /var/svn/svns/hooks/post-commit
【post-commit】
REPOS="$1"
REV="$2"
export LC_ALL="zh_CN.UTF-8"
export LANG="en_US.UTF-8"
LOG_FILE=/var/log/svn.log
# 脚本的标准输出和错误输出都打印到日志文件里
exec 1>>"$LOG_FILE"
exec 2>&1
# --------------
echo "Admin Update MiniBlog!"
# 打印本次上传的信息
svnlook info -r "$2" /var/svn/svns
# --------------
# 参数信息
SVN_PATH=/usr/bin
WEB_PATH=/var/www
SVN_USER=admin
SVN_PASS=123456
# --------------
# 同步数据
$SVN_PATH/svn update $WEB_PATH --non-interactive --username $SVN_USER --password $SVN_PASS
exit 0
【记得给 post-commit 可执行权限】
[root@miniblog ~]# chmod -R 755 /var/svn/svns/hooks/post-commit
【效验成果】
SVN 最基本的安装完成!
SVN 权限配置相关事宜完成!
SVN 钩子程序已自动同步WEB站点!
SVN 18次有目的性的版本迭代测试完成!
SVN 测试文件(test.html)已删除!
GO!开始上传“斑马缘”项目初始化框架!
...
---------------------
测试时可能需要用到的路径:
[root@miniblog ~]# vim /var/log/svn.log
[root@miniblog ~]# vim /var/svn/svns/hooks/post-commit
何不git