首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > CVS SVN >

svn-hook学习备忘

2012-07-30 
svn-hook学习备忘-以下代码部分来自网上用VBS脚本检查提交log是否足够(长)pre-commit.bat内容:: begin of

svn-hook学习备忘-
以下代码部分来自网上
用VBS脚本检查提交log是否足够(长)
pre-commit.bat内容

:: begin of pre-commit.bat:: 阻止空日志信息的版本的提交@echo offSETLOCALSET REPOS=%1SET TXN=%2cscript D:\svn\repository\demo\hooks\pre-commit.vbs "%REPOS%" "%TXN%":: end of pre-commit.bat

pre-commit.vbs代码
'必须显式声明变量Option ExplicitPrivate ArgsPublic wshShell,logExecSet wshShell = WScript.CreateObject("WScript.Shell")Set Args = WScript.ArgumentsDim MaxArgsMaxArgs = 2'调用主要处理流程Call Main'*******************************************************************************'Main()过程定义'*******************************************************************************Private Sub Main()Call ArgsErrCall CheckLogEnd Sub 'Main()'*******************************************************************************'出错退出函数,统一进行资源释放'*******************************************************************************private sub ErrExit()Set Args = NothingSet wshShell = NothingSet logExec =Nothing'错误返回WScript.Quit (1)end sub 'ErrExit()'*******************************************************************************'参数出错处理'*******************************************************************************Private Sub ArgsErr()    If (Args.Count < MaxArgs) Then        '在系统信息中记录此错误信息(事件查看器)        wshShell.LogEvent 1, "缺少参数个数!"            '错误信息输出到客户端        WScript.StdErr.WriteLine("缺少参数个数!")        '错误返回        Call ErrExit()    End IfEnd Sub 'ArgsErr()'*******************************************************************************'日志检查'*******************************************************************************Private Sub CheckLog()Dim sReposPath, sRevision, sCommand, sLogsReposPath = cstr(Args(0))sRevision = cstr(Args(1))'合成svnlook 命令 sCommand = "D:/svn/bin/svnlook.exe log " + sReposPath + " -t " + sRevisionSet logExec = wshShell.Exec(sCommand)'读取svnlook log命令返回结果Do While Not logExec.StdOut.AtEndOfStream     sLog = logExec.StdOut.ReadAll()loopif len(sLog)<=10 then     WScript.StdErr.WriteLine("备注太短,至少10字!")     Call ErrExit()end ifEnd Sub

注意VBS代码文件的保存格式使用UNICODE,不然出现乱码,命令行工具需要在系统PATH路径中,否则需要全路径

热点排行