先说这个方式的一个弊端,那就是服务器端这边代码不能与svn服务器出现冲突,一旦冲突就失效。

实现原理是,利用svn版本库,hooks目录的bat钩子开展工作。

共在hooks目录下建立3个文件如下:
post-commit.bat 作用是:钩子入口!
postcommit.log 作用是:记录最后一次执行的结果(可以记录最后一次报错)建立一个空文件就好!
post-commit-run.bat 作用是:自动更新的核心部分!

post-commit.bat的代码是:

call %~dp0post-commit-run.bat %* > %~dp0postcommit.log 2>&1

post-commit-run.bat的代码是:

@echo off

SET REPOS=%1
SET REV=%2

SET DIR=%REPOS%/hooks
SET PATH=%PATH%;

SET WORKING_COPY=D:/Websites/www
svn update %WORKING_COPY% --username your_name --password your_pwd

注意填写客户端地址、用户名和密码,这里的是:D:/Websites/www、admin和123456.

hooks目录地址:配置密码那边,如图

另外一个别人的博客,大同小异,只是比较简单,没有做日志而已

在Windows 03 Server上搭建了 VisualSVN 服务器,想要设置成当提交到SVN中的任何修改都同步更新到本机服务器上的WEB目录下。

根据网上各种版本的参考,基本上上使用svn自带的hook功能实现:

在SVN 项目版本的存储目录的hooks 目录中,建立一个post-commit.bat 文件:

@echo off

SET REPOS=%1
SET REV=%2

SET DIR=%REPOS%/hooks
SET PATH=%PATH%;

SET WORKING_COPY=D:/Websites/www
svn update %WORKING_COPY% --username your_name --password your_pwd

注意事项:

1.需要将SVN服务器的bin目录加入到path路径中,加入后,未重启,在命令行下path值立即生效,但是SVN服务器却无法找到,总是提示:

警告: post-commit hook failed (exit code 1) with output:
'svn' 不是内部或外部命令,也不是可运行的程序或批处理文件。

2.需要设置SVN服务对文件桌面系统权限,否则会报无法读写文件的错:

选择本地系统账户,并勾选 允许服务与桌面交互

OVER

ORG: http://blog.donews.com/me1105/archive/2010/12/05/82.aspx

svn服务器端的客户端自动更新的更多相关文章

  1. SVN的基本原理 配置自动更新WEB服务器

    SVN的基本原理 配置自动更新WEB服务器 最近有个小项目,需要用SVN来进行版本控制.项目组的同僚有8个人,大家都在本地开发,然后提交到服务器——服务器就是其中一台机器.专门安排一个测试员来进行项目 ...

  2. 分享下使用 svn,测试服务器代码自动更新、线上服务器代码手动更新的配置经验

    分享下使用 svn,测试服务器代码自动更新.线上服务器代码手动更新的配置经验 利用SVN的POST-COMMIT钩子自动部署代码 Linux SVN 命令详解 Linux SVN 命令详解2 使用sv ...

  3. SVN----------项目服务器上的svn客户端自动更新设置。

    1.局域网服务器上搭建了PHP项目运行的环境,然后怎么样讲根目录拉去到的项目可以随着开发人员提交的代码,自动更新成最新的代码. 2.首先将svn版本库上的代码拉取到www目录下或者你的根目录. 3.然 ...

  4. WindowsForm客户端自动更新逻辑

    启动客户端的时候,单独开一个线程,该线程主要是判断指定服务器上的更新包和本地使用的客户端是否一致,是否需要更新,不需要更新,则退出,需要更新则从服务端的下载更新包,然后提示用户是否更新,点击更新,启动 ...

  5. c#客户端自动更新模块

    一.概述 将需要更新的文件上传到服务器端,然后客户端从服务器下载更新文件并覆盖本地文件. 二.功能模块 1.将更新文件放入指定文件夹,检测更新,生成更新配置文件,并上传到服务器 2.获取服务器的更新配 ...

  6. SVN上传文件自动更新到发布站点

    源码安装svn, version 1.9.5 ###########服务端源码安装############# IP:192.168.1.13 安装依赖:              # yum -y i ...

  7. 推荐Windows下SVN服务器端和客户端工具软件

    相信很多人使用过Windows下的SVN客户端软件TortoiseSVN或者也有过Linux下.MAC下的SVN命令行使用经验,另外MAC下还有以一款就做Vesions的SVN客户端软件,不过个人感觉 ...

  8. svn利用钩子post-commit自动更新到线上测试服务器(测试中未验证)

    创建一个新的版本库: [root@centos03 svn]# pwd /home/svn [root@centos03 svn]# svnadmin create webtest [root@cen ...

  9. WCF实现客户端自动更新-GenerateFileList

    GenerateFileList using System; using System.Collections.Generic; using System.Diagnostics; using Sys ...

随机推荐

  1. nyoj1007(euler 函数)

    euler(x)公式能计算小于等于x的并且和x互质的数的个数: 我们再看一下如何求小于等于n的和n互质的数的和, 我们用sum(n)表示: 若gcd(x, a)=1,则有gcd(x, x-a)=1: ...

  2. JS中级 - 01:DOM节点

    1元素属性   1.1childNodes 返回元素的一个子节点的数组 (不推荐,建议用非标准children代替) 提醒:只包含一级子节点,不包含后辈孙级别以下节点. children:返回元素的一 ...

  3. ASP.NET Web API 控制请求频率

    参考地址:http://www.cnblogs.com/shanyou/p/3194802.html 安装nuget包:WebApiContrib 很多的api,例如GitHub’s API 都有流量 ...

  4. 【JAVA网络流之浏览器与服务器模拟】

    一.模拟服务器获取浏览器请求http信息 代码: package p06.TCPTransferImitateServer.p01.ImitateServer; import java.io.IOEx ...

  5. oracle pctfree和pctused详解

    一.建立表时候,注意PCTFREE参数的作用 PCTFREE:为一个块保留的空间百分比,表示数据块在什么情况下可以被insert,默认是10,表示当数据块的可用空间低于10%后,就不可以被insert ...

  6. Linux系统启动流程及安装命令行版本

    Debian安装 之前也安装过很多次linux不同版本的系统,但安装后都是直接带有桌面开发环境的版本,直接可以使用,正好最近项目不是很忙,想一直了解下Linux的整个启动流程,以及如何从命令行模式系统 ...

  7. Eclipse+CDT+GDB调试android NDK程序(转)

    Eclipse+CDT+gdb调试android ndk程序 先介绍一下开发环境,在这个环境下,up主保证是没有问题的. ubuntu 11.10 eclipse 3.7(indego) for ja ...

  8. 在Salesforce中创建Schedule的Job去定时触发对应的Class

    在Salesforce中也存在着Job的概念,当然了我们可以创建Schedule的Job去定时触发对应的Class,来完成我们所需要定时处理的功能,比如:定时同步数据. 具体处理步骤如下所示: 1): ...

  9. ubuntu12.04 安装eclipse

    1:去官网下载最新版的eclipse for linux; 2:cd  /usr/local 用命令 sudo mkdir eclipse 建立一个Eclipse的目录 3:将下载的文件copy到ec ...

  10. Java学习随笔5:Java多线程编程

    1. 线程是程序中单独顺序的控制流,线程本身依靠程序进行运行,线程是程序中的顺序控制流,只能使用分配给程序的资源和环境. 2. 进程是执行中的程序,一个进程可以包含一个或多个线程,但至少要包含一个线程 ...