[转]svn提交自动同步到web服务器
2015-08-24 19:35
549 查看
参考博文:/article/3509607.html
同步程序思路:用户提交程序到SVN,SVN触发hooks,按不同的hooks进行处理,这里用到的是post-commit,利用post-commit到代码检出到SVN服务器的本地硬盘目录,再通过rsync同步到远程的WEB服务器上。
知识点:
1、SVN的hooks
# start-commit 提交前触发事务
# pre-commit 提交完成前触发事务
# post-commit 提交完成时触发事务
# pre-revprop-change 版本属性修改前触发事务
# post-revprop-change 版本属性修改后触发事务
通过上面这些名称编写的脚本就就可以实现多种功能了,相当强大。
2、同步命令rsync的具体参数使用
3、具有基个语言的编程能力bash python perl都可以实现
post-commit具体实现细节
post-commit脚本
编辑文件:sudo vim /home/svn/fitness/hooks/post-commit
注意:编辑完成post-commit后,执行:sudo chmod 755 post-commit
内容:
#!/bin/sh
export LANG=zh_CN.UTF-8
sudo /usr/bin/svn update /var/www/www --username mirze --password 123456
这个是已提交就自动更新覆盖原有路径。
还有一个是需要用户提交时输入关键字;例如:auto-load,才更新,哪个博文找不到了,找到后再贴上!
linux下svn定时更新项目(这个作为参考,放到服务器上不合适,更新太费资源) http://blog.sina.com.cn/s/blog_920dea7a01014nm8.html
有个复杂的还没看:http://os.51cto.com/art/201410/454887.htm
SVN命令使用详解 http://blog.sina.com.cn/s/blog_963453200101eiuq.html
同步程序思路:用户提交程序到SVN,SVN触发hooks,按不同的hooks进行处理,这里用到的是post-commit,利用post-commit到代码检出到SVN服务器的本地硬盘目录,再通过rsync同步到远程的WEB服务器上。
知识点:
1、SVN的hooks
# start-commit 提交前触发事务
# pre-commit 提交完成前触发事务
# post-commit 提交完成时触发事务
# pre-revprop-change 版本属性修改前触发事务
# post-revprop-change 版本属性修改后触发事务
通过上面这些名称编写的脚本就就可以实现多种功能了,相当强大。
2、同步命令rsync的具体参数使用
3、具有基个语言的编程能力bash python perl都可以实现
post-commit具体实现细节
post-commit脚本
编辑文件:sudo vim /home/svn/fitness/hooks/post-commit
注意:编辑完成post-commit后,执行:sudo chmod 755 post-commit
内容:
#!/bin/sh
export LANG=zh_CN.UTF-8
sudo /usr/bin/svn update /var/www/www --username mirze --password 123456
REPOS="$1" REV="$2" export LANG=zh_CN.UTF-8 #设定语言,根据系统语言设置,如果是UTF-8 就设置为 LANG=zh_CN.UTF-8 SVN_PATH=/usr/bin/svn SVN_USER=user SVN_PASD=passwd WEB_PATH=/var/www/website/weixin WEB_IP="192.168.197.1" RSYNC=rsync LOG_PATH=/tmp/svn_update.log svn export "svn://192.168.197.1/test" $WEB_PATH --username $SVN_USER --password $SVN_PASD --force chown -R yzxx:yzxx /var/www/website/weixin/ chmod -R 777 /var/www/website/weixin/\#runtime
这个是已提交就自动更新覆盖原有路径。
还有一个是需要用户提交时输入关键字;例如:auto-load,才更新,哪个博文找不到了,找到后再贴上!
linux下svn定时更新项目(这个作为参考,放到服务器上不合适,更新太费资源) http://blog.sina.com.cn/s/blog_920dea7a01014nm8.html
有个复杂的还没看:http://os.51cto.com/art/201410/454887.htm
SVN命令使用详解 http://blog.sina.com.cn/s/blog_963453200101eiuq.html
相关文章推荐
- Docker 面临的安全隐患,我们该如何应对
- 手动修改magento域名
- Android读取assets下的文件
- Linux安装tomcat项目容器
- SDKD Summer Team Contest S
- CSUOJ 1333 Funny Car Racing (spfa算法)
- 在mac上交叉编译mono的脚本,mac x64,iphone armv7,iphone armv7s,android armv7-a
- UML——类图
- Android Studio Start Failed解决方法
- Linux系统程序员的错误处理
- PAT 1098. Insertion or Heap Sort (25)
- [全职] 摩根大通-量化金融-北京
- 安卓从sdcard中读取db文件
- Linux系统编程静态库和共享库
- Intent的通信
- Java解析html之JSOUP(译)-jsoup Cookbook(1)
- ios 防止按钮快速点击造成多次响应的避免方法。
- 【C语言学习】《C Primer Plus》第12章 存储类、链接和内存管理
- 聊天机器人 使用聚合数据sdk
- UIScrollView添加控件,控件距离顶部始终有间距的问题