运行环境说明:
svn的执行目录: /usr/bin/svn
svn版本库目录: /usr/local/nginx/html/svnrepos/coinhello (其中svnrepos是我各个项目版本库的存放目录,coinhello是其中的一个项目版本库)
coinhello版本库账号:username(根据个人情况)
coinhello版本库密码:password (根据个人情况)
需要自动更新的网站根目录:/data/wwwroot/coinhello(即coinhello版本库对应的网站根目录,这是在coinhello版本库创建后使用命令得到: svn checkout svn://120.77.xxx.xxx/coinhello)

实现方法是:以coinhello版本库为例,用版本库下的hooks目录下的post-commit钩子完成服务器代码的自动更新。post-commit钩子会在svn commit完成后触发执行。
[root@xxx ~]# cd  /usr/local/nginx/html/svnrepos/coinhello/hooks
[root@xxx hooks]# cp  post-commit.tmpl  post-commit
[root@xxx hooks]# vim  post-commit

REPOS="$1"
REV="$2"
export LANG=en_US.utf8
WEB_PATH=/data/wwwroot/coinhello
LOG_PATH=/data/wwwlogs/coinhello_svn.log
SVN_PATH=/usr/bin/svn
SVN_USER=username
SVN_PASS=passwordecho `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH
$SVN_PATH update $WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache >> $LOG_PATH
echo '' >> $LOG_PATH

说明:REPOS="$1" 是coinhello项目版本库的路径,REV="$2" 提交后最新的版本号,--no-auth-cache 是不保存账户的认证信息。

最后:
a. 改变post-commit文件的所属用户和所属组,groupname和username的值根据个人情况,该步骤非必须。
[root@xxx hooks]# chown  groupname:username  /usr/local/nginx/html/svnrepos/coinhello/hooks/post-commit

b. 改变post-commit文件的权限,使其可执行
[root@xxx hooks]# chmod  +x   /usr/local/nginx/html/svnrepos/coinhello/hooks/post-commit

svn自动更新网站代码的更多相关文章

  1. git自动更新网站代码

    1.实现过程在linux上安装git服务.创建源版本库.从源版本库克隆得到网站目录,然后利用git中的hooks机制,在git push推送代码到源版本库的时候,触发编写的shell脚本,更新网站目录 ...

  2. 后盾网lavarel视频项目---phpstorm 配置ftp, 自动更新同步代码

    后盾网lavarel视频项目---phpstorm 配置ftp, 自动更新同步代码 一.总结 一句话总结: 1.在phpstorm中设置:路径Tools/Deployment/Configuratio ...

  3. svn自动更新服务器最新代码

    1.很简单打开dos界面 cd到svn exe目录下,运行 cd C:\Program Files\TortoiseSVN\bin    --svn安装目录(作者使用时TortoiseSVN客户端,其 ...

  4. windows下svn自动更新

    配置hooks下post-commit.bat文件,文件内容如下 @echo offSET REPOS=%1SET REV=%2SET DIR=%REPOS%/hooksSET PATH=%PATH% ...

  5. svn自动更新

    果对svn不熟悉,当svn上面有更新时,想看到实时效果,就得去web目录手动更新,比较麻烦 其它svn有一个自动更新的功能 利用 hook   在svn 仓库目录下面有一个hook目录 在post-c ...

  6. SVN自动更新-win平台

    把项目给外包做,他们天天整个ftp传来传去,上传一次还要到处翻View和Controller,还有漏传的情况,简直low到不行.看不下去了,就准备整个svn.虽然svn解决了上传的问题,但是自动发布还 ...

  7. windows系统 svn自动更新

    如果对svn不熟悉,当svn上面有更新时,想看到实时效果,就得去web目录手动更新,比较麻烦 其它svn有一个自动更新的功能 利用 hook   在svn 仓库目录下面有一个hook目录 在post- ...

  8. svn自动更新web服务器

    1.安装VisualSVN-Server-2.7.5.msi和TortoiseSVN-1.8.6.25419-win32 安装完创建test库到E:\Repositories\test\目录下 2.自 ...

  9. Git github webhook 自动更新/部署代码 php自动更新脚本

    这几天尝试了利用github的webhook,当代码更新到github,我们的测试服务器自动更新最新的gitbub仓库代码. 先列几个大概步骤,有时间再补充详细 1 . 服务器生成ssh key,一般 ...

随机推荐

  1. JDBC_时间处理_Date_Time_Timestamp区别_随机日期生成

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement;import ...

  2. Leetcode 931. Minimum falling path sum 最小下降路径和(动态规划)

    Leetcode 931. Minimum falling path sum 最小下降路径和(动态规划) 题目描述 已知一个正方形二维数组A,我们想找到一条最小下降路径的和 所谓下降路径是指,从一行到 ...

  3. SDUT OJ 数组计算机(线段树)

    学长推荐了这个博客详细的介绍了线段树的建立.查找.更新: 数组计算机 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Prob ...

  4. nodejs post 数据到php $_POST["content"]接收不到的问题

    今天写了一段代码,要用到ajax调用php的接口,因为是https的,所以ajax不能跨域,于是使用nodejs调用接口,但是传输数据后 $_POST["content"]接收不到 ...

  5. google 浏览器的Debug 调试工具使用

    一个写后台的人 有一天要自己找前台页面的错误 于是乎就得会前台debug 于是乎我不会 就在网上找了一些资料看  不就是几个按钮 嘛 有啥难的  上图片 1.Google 浏览器 F12 就可以看到 ...

  6. css和js带参数v或version

    1 <span style="font-size:14px;">css和js带参数(形如.css?v=与.js?v= 或 .css?version=与.js?versi ...

  7. python 连接数据库 pymysql模块的使用

    一 Python3连接MySQL 本文介绍Python3连接MySQL的第三方库--PyMySQL的基本使用. 1 PyMySQL介绍 PyMySQL 是在 Python3.x 版本中用于连接 MyS ...

  8. C++_类和动态内存分配4-有关返回对象的说明

    返回方式: 返回指向对象的引用: 指向对象的const引用: const对象:  =============================================== 返回指向const对象 ...

  9. abp + angular 项目 图标字体注意事项

    用的字体建议下载到本地,否则部署环境没有网络的话,则图片字体会不正常显示.

  10. 【算法笔记】B1028 人口普查

    1028 人口普查 (20 分) 某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 2 ...