SVN服务器搭建:http://blog.chinaunix.net/uid-21146222-id-5761320.html
安装步骤如下:
1、yum install subversion
2、查看安装版本 svnserve --version
3、创建SVN版本库目录 mkdir -p /home/svn/svnproj
4、创建版本库 svnadmin create /home/svn/svnproj
5、进入conf目录(该svn版本库配置文件)cd conf/
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件
6、设置帐号密码 vi passwd
在[users]块中添加用户和密码,格式:帐号=密码,如quwenzhe=123456
7、设置权限 vi authz
在末尾添加如下代码:
意思是quwenzhe对版本库的根目录有读写权限
8、修改svnserve.conf文件 vi svnserve.conf
打开下面的几个注释:
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = something # 描述
9、启动svn版本库 svnserve -d -r /home/svn(注意:这里是到svn这一级根路径,而不是到svnproj)
(PS:停止SVN命令 killall svnserve)
10、在windows上测试
输入SVN地址,如下图:svn://yourserver.com/svnproj
输入用户名、密码,如下图:
到此,在CentOS 7上搭建SVN服务器的操作步骤完毕。
接下来利用hooks实现代码的自动提交部署
# cd hooks
# cp post-commit.tmpl post-commit # .tmpl只是模板文件,真正起作用的是不带扩展名的脚本
# vim post-commit
文件末尾添加
svn checkout "svn://yoursvnserver" /usr/share/nginx/html --force --username="admin" --password="admin" --non-interactive
exit 0
:wq
# chmod 777 post-lock # 赋予脚本执行权限
以上代码的意思是,当发生svn提交操作时,自动签出最新代码版本到nginx的html目录下。注意:最后的exit0不可或缺,否则会报:
post-commit hook failed (exit code 255) with no output
之后每次提交最新的代码即可自动同步到nginx服务器下。关于svn hooks的更多用法:
事 件名 | 时 机 | 与 hook 交 互 | 一 般用途 |
start-commit | 事务创建之前。 | 传给 hook 的 参数: - 参 数 1 , 代码库路径。 - 参 数 2 , 试图提交的用户名。 hook 的返回值:非 0 则 终止。 | 判断用户是否有权限进行提交 操作。 |
pre-commit | 事务完成,但未提交。 | - 参 数 1 , 代码库路径。 - 参 数 2 , 事务名。 hook 的返回值:非 0 则 终止提交,操作回滚。 | 对提交内容进行检查。如要求 提交必须填写提交信息。 |
post-commit | 事务提交完毕,新的修订版被 创建。 | 传给 hook 的 参数: - 参 数 1 , 代码库路径。 - 参 数 2 , 刚创建的修订版号。 hook 的返回值被忽 略。 | 发送邮件通知,或备份代码 库。 |
pre-revprop-change | 修改修订版属性(如提交时提 供的信息 message )之前。 由于修订版属性一旦修改就会 永久的丢失,除非安装这个事件的 hook ,subversion 的 客户端不允许远程修改修订版属性。 | 传给 hook 的 参数: - 参 数 1 , 代码库路径。 - 参 数 2 , 要修改的修订版号。 - 参 数 3 , 操作用户名。 - 要 修改的属性。 hook 的返回值:非 0 则 终止。 | 保存修订版属性的改变记录。 |
post-revprop-change | 修订版属性值被修改之后。 如果没有安装 pre-revprop-change 的 hook , 这个事件的 hook 不会被执行。 | 传给 hook 的 参数: - 参 数 1 , 代码库路径。 - 参 数 2 , 要修改的修订版号。 - 参 数 3 , 操作用户名。 - 要 修改的属性。 hook 的返回值被忽 略。 | 发送邮件通知。 |
参考:http://blog.csdn.net/deepwishly/article/details/5366757
http://blog.csdn.net/cx118118/article/details/53427796
https://zhidao.baidu.com/question/1821333664904490708.html
posted on 2017-06-22 14:51
思月行云 阅读(770)
评论(0) 编辑 收藏 引用 所属分类:
服务器\Ops