在Windows下配置svn服务端钩子程序


本文章是给已经配置好windows下的svn服务,还需要配置一些比如svn提交必须输入日志,提交之后同步web目录这种功能的介绍。

由于业务需求有时我们需要SVNsvn提交时必须填写log日志,svn本身并不提供这种强制写log的功能,而是通过一系列的钩子程序(我们称为hook脚本),在提交之前(pre-commit),提交过程中(start-commit),提交之后(post-commit),调用预定的钩子程序来完成一些附加的功能。

本次我们要实现的是在提交到版本库之前检查用户是否已经写了注释,当然要使用pre-commit这个钩子程序。我们打开SVN的repository下的hook目录,可以发现有好几个文件,其中一个是“pre-commit.tmpl”。这个文件是一个模板文件,它告诉了我们如何实现提交前控制。

需求一,svn提交时必须填写log日志的需求,如何进行配置呢?请看下面。

需要在版本库目录下找到hooks文件夹,我的版本库是dxoffice,所以是这个目录,你要找自己的目录

然后进入,创建一个pre-commit.bat文件,提交之前要做的一个hooks文件,编辑,将以下内容拷贝到文件中并进行保存。

@echo off
::
:: Stops commits that have empty log messages.
::  @echo off  set svnlook="D:/Program Files/VisualSVN Server/bin/svnlook.exe" //此处是你的svnanzhu
setlocal  rem Subversion sends through the path to the repository and transaction id
set REPOS=%1
set TXN=%2  rem check for an empty log message
%svnlook% log %REPOS% -t %TXN% | findstr . > nul
if %errorlevel% gtr 0 (goto err) else exit 0  :err
echo. 1>&2
echo Your commit has been blocked because you didn't give any log message 1>&2  //此处是返回给客户端的错误信息
echo Please write a log message describing the purpose of your changes and 1>&2
echo then try committing again. -- Thank you 1>&2
exit 1  
如果您有最少提交多少字的需求,只需在%svnlook% log %REPOS% -t %TXN% | findstr . > nul这行代码中找到findstr .在这里有一个 点表示最少输入1个字符,如果是10个点代表最少输入10个字符,以此类推。保存之后,不用重启服务器就可以进行尝试。网上找了很多提交时都会报错,这个配置还可以,没有报错。
需求二:提交svn后,需要同步web目录。

方法同上面差不多。需要创建post-commit.bat文件,提交之后要做的hooks程序,编辑,然后将下面代码拷贝到里面,这里要注意编码了.bat文件编码格式设置为:ANSI,否则报错......

@echo off
SET REPOS=%1
SET REV=%2
SET DIR=%REPOS%/hooks
SET PATH=%PATH%;
SET WORKING_COPY=E:/svn_test  //此处是你的项目路径,此路径必须是一个svn的路径,这意味着你已经checkout出了源码
svn update %WORKING_COPY% --username name --password password    //输入svn用户名密码  

还有一个注意问题——Visual SVN Server的权限,否则可能会出现下列错误:

post-commit hook failed (exit code 1) with output:
svn: E155004: Working copy 'D:\www\Test' locked
svn: E200031: sqlite: attempt to write a readonly database
svn: E200031: sqlite: attempt to write a readonly database
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)

原因是Visual SVN Server服务的执行权限不够,不能对指定目录做读写操作。解决办法,修改Visual SVN Server 
     简单操作 win+R  运行 services.msc 找到visual svn server 服务 右键属性 先停止服务之后,再设置登陆,设置桌面交互或者管理员权限

在Windows下配置svn服务端钩子程序相关推荐

  1. Windows下架设SVN服务

    一.准备工作 1.获取 Subversion 服务器程序 到官方网站(http://subversion.tigris.org/)下载最新的服务器安装程序.目前最新的是1.5版本,具体下载地址在:ht ...

  2. svn服务器配置如何修改,windows 下配置svn服务器(+修改)

    传统的Subversion 服务器程序: 一.准备工作 1.获取 Subversion 服务器程序 到官方网站(http://subversion.tigris.org/)下载最新的服务器安装程序.目 ...

  3. windows下配置cvs服务端

    2019独角兽企业重金招聘Python工程师标准>>> 环境:windows XP 安装步骤略去,其实就是一路的next. 1.打开cvs控制面板 2.找到这个选项卡 3.配置路径 ...

  4. 如何配置windows下的snmp服务

    如何配置windows下的snmp服务 转载于:https://blog.51cto.com/ziyan/167906

  5. Windows下基于IIS服务的SSL服务器的配置

    Windows下基于IIS服务的SSL服务器的配置 实验环境 Windows Server 2008 R1(CA) Windows Server 2008 R2(web服务器) Windows 7 x ...

  6. SVN+SSH协议工作方式全解析,以Sourceforge为例讲解如何在Windows下配置TortoiseSVN和Su

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 简单地说 ...

  7. Windows下当地RabbitMQ服务的安装

    Windows下本地RabbitMQ服务的安装 本文参考:刘若泽相关技术文档 当然这些内容页可以通过RabbitMQ官方网站获得. RabbitMQ配置说明手册 一.RaibbitMQ服务器配置 1. ...

  8. windows 下配置 react native 开发环境

    windows 下配置 react native 开发环境 安装nvm 由于react native 需要使用 NodeJs 4.0以上版本,为了方便切换NodeJs,首先我们需要安装nvm. 你可以 ...

  9. windows下配置ssh(FreeSSHD + putty)

    windows下配置ssh(FreeSSHD + putty): 1.关于配置过程找到一篇很好的博客,推荐大家先好好看一下,这篇博文解决了大方向问题. 地址:http://blog.csdn.net/ ...

  10. Windows和Linux双启动,并用在Windows下配置CoLinux启动

    http://www.cppblog.com/newclear/archive/2009/09/27/97327.html Windows和Linux双启动,并用在Windows下配置CoLinux启 ...

最新文章

  1. 如何用DNS+GeoIP+Nginx+Varnish做世界级的CDN
  2. 《深入浅出设计模式-中文版》读书笔记-工厂模式(五)
  3. mysql远程连接 Host * is not allowed to connect to this MySQL server
  4. ubuntu和windows双系统时间错乱问题
  5. 现代软件工程系列 创新靠学分
  6. 后台创建窗体下拉列表
  7. python学出来能做什么-python学出来能做什么
  8. 求解偏微分方程开源有限元软件deal.II学习--Step 1
  9. 面向对象编程OOP Object oriented programing
  10. 《诗经》(全集) (1)
  11. otool 分析Mach-O
  12. Java调用WebService接口的四种方式
  13. 5年迭代5次,抖音推荐系统演进历程
  14. xp访问贡享显示指定服务器,XP访问Win10共享打印机指定的网络名不再可用解决方法...
  15. 项目实战:如何制作报表?
  16. IDEMIA任命Astrid Warren为首席人力官
  17. SATA硬盘性能测试软件,趣味测试:实测SATA线对硬盘性能的影响
  18. Linux/Unix关机、重启(shutdown\reboot\halt\init)等命令
  19. 常微分方程(2):一阶线性微分方程
  20. [蓝桥杯][2019年第十届真题]外卖店优先级、修改数组、糖果、特别数的和、等差数列

热门文章

  1. DEM高程数据的获取和应用(全国DEM数据可直接下载)
  2. DO280介绍红帽OPENSHIFT容器平台--管理OpenShift与课外补充
  3. 初识C语言,入门小程序
  4. virt viewer Usbredir USB重定向
  5. SNIC超像素分割python代码
  6. 华硕电脑安装键盘灯驱动步骤
  7. 药店零售管理php系统,医药POS零售管理系统
  8. 乐高EV3怎么运行Python?
  9. Java字符串的字符进行排序
  10. 睡眠分期matlab代码,非接触式睡眠分期方法与流程