centos下SVN服务器实现自动化部署以及常见问题的处理

2018-03-02 11:00:08
自动部署每一次commit提交代码之后都会执行钩子post-commit,根据这个原理可以修改post-commit,让服务器上的web目录在每次有人commit之后自
自动部署

每一次commit提交代码之后都会执行钩子post-commit,根据这个原理可以修改post-commit,让服务器上的web目录在每次有人commit之后自动update。

1
2
3
cd /data/wwwsvn/myrepo/hooks #你的版本仓库目录
cp post-commit.tmpl post-commit
vi post-commit

内容如下

1
2
3
export LANG=zh_CN.UTF-8 #必须要这行
echo "hello world" >> /tmp/svn.log #用来测试钩子是否有执行,调试使用,如果正常就不需要这行了
/usr/bin/svn update /data/wwwroot/yourWebDir --username autoweb --password autoweb --no-auth-cache #也可以用其他方法,总之要保证web目录能正常update

钩子文件里的其他都可以不要了,可以都把他们注释掉。 

能这么使用的前提是你的yourWebDir已经checkout过了

1
2
3
cd /data/wwwroot/yourWebDir
svn checkout svn://你的服务器ip
... #根据提示完成checkout

比如要指定目录:svn checkout svn://10.10.1.24:3690/xjjk /home/wwwroot/xjjk/
至此全部搞定,每一次commit到服务器会自动更新网站内容了。 

这也是上次服务器数据丢失之后第一次记录了。

常见问题的处理
Node remains in conflict,svn在服务器上显示冲突

症状:
index页面修改后某标题后提交svn,并没有报错也没有显示冲突,但访问线上却发现并没有改变....尴尬了,删了传,传了删,重新检出,重新上传。。。。 通通不管用。。

找原因:
查看服务器,发现也没有冲突文件

删掉index.html后 再 svn update ,发现有报错

报错显示 Skipped 'index.html' -- Node remains in conflict 说index.hmlt被忽略了,因为冲突
而且index.html又被更新回来了,还是旧版本的内容,之前修改的标题并没有被修改

解决:
经过各种搜索,给出的办法均行不通,后来发现还是stackoverflow比较diao

svn revert --depth=infinity index.html

这里的index.html是冲突的文件,朋友们遇见类似问题只要把这里改成自己svn提示冲突的文件名即可。若此方法行不通,可尝试index.html(也就是冲突文件名)改成该冲突文件所在的文件夹名字

 

svn 钩子 post-commit 出现255错误解决办法


首先检查代码中是否有可执行命令 #!/bin/sh

然后 检查post-commit权限

post-commit 脚本文件的权限不对,post-commit 脚本必须有 +x 权限。

 

chown svn:svn post-commit

chmod +x post-commit

相关词搜索:自动化部 服务器

上一篇:centos系统添加/删除用户和用户组查看登录用户:who 查看用户
下一篇:nginx+php-fpm+mysql分离部署详解

最新文章
相关文章