运行环境说明:
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. centos6.3安装 jdk-8u131-linux-x64.gz

    解压指令为:tar -zxvf jdk-8u131-linux-x64.gz 设置环境变量,首先是打开设置环境变量的文件夹,指令为:vi /etc/profile     然后在英文输入法下切换到“插 ...

  2. 【AOP】基于@Aspect的AOP配置

    基于spring cloud的aop配置 1,启动类MemberAppliaction增加注解 @Import({SwaggerConfiguraion.class, WebMvcAutoConfig ...

  3. Mac的Parallels在启动Win的时候让它独立全屏窗口

    这里备忘一下,由于经常需要***,Win方法比较多少,所以使用Parallels在Win下***还是很有必要的,为了使用使用方便,一般让Parallels启动系统之后自动生成一个独立的全窗口,方便来回 ...

  4. C#直接使用DllImport外部Dll的方法

    C#.Net调用基本格式:[DLLImport(“DLL文件路径”)]修饰符 extern 返回值类型 方法名称(参数列表) 如: [DllImport("kernel32.dll" ...

  5. vscode 遇到设置问题

    // 控制是否在新窗口中打开文件. // - default: 除了从软件内部选择的文件 (如,从“文件”菜单选择),其他所有文件都将在新窗口中打开 // - on: 文件将在新窗口中打开 // - ...

  6. JAVA基础——重新认识String字符串

    深入剖析Java之String字符串 在程序开发中字符串无处不在,如用户登陆时输入的用户名.密码等使用的就是字符串. 在 Java 中,字符串被作为 String 类型的对象处理. String 类位 ...

  7. SSM整合dubbo 进行分页查询

    1.先书写Mapper和sql语句 public interface ActEntityMapper { int deleteByPrimaryKey(String actId); int inser ...

  8. F. Clear the String(区间 DP )//每次都删除一个相同字符的子串 , 最小多少次

    https://codeforces.com/contest/1132/problem/F 借鉴:https://www.cnblogs.com/chhokmah/p/10508762.html 题意 ...

  9. Vue-cli 构建项目 的`.vue`组件中, scss中添加背景图路径问题

    [解决方法]: 更改build/utils.js文件中的 ExtractTextPlugin 的 options配置. if (options.extract) { return ExtractTex ...

  10. 剑指offer5.1——O(n)的复杂度合并两个有序数组

    #include"iostream" #include"stdio.h" using namespace std; int* ArrayMerge(int *a ...