svn-hook学习备忘-

本文介绍了一个使用VBS脚本检查Git提交日志长度的自动化脚本,确保日志信息足够详细,避免空日志提交。脚本通过调用svnlook命令获取日志,并检查其长度是否达到预设的最小值(至少10字)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[color=red][size=large]以下代码部分来自网上[/size][/color]
用VBS脚本检查提交log是否足够(长)
pre-commit.bat内容

:: begin of pre-commit.bat
:: 阻止空日志信息的版本的提交

@echo off

SETLOCAL

SET REPOS=%1
SET TXN=%2

cscript D:\svn\repository\demo\hooks\pre-commit.vbs "%REPOS%" "%TXN%"

:: end of pre-commit.bat

pre-commit.vbs代码

'必须显式声明变量
Option Explicit

Private Args
Public wshShell,logExec

Set wshShell = WScript.CreateObject("WScript.Shell")
Set Args = WScript.Arguments

Dim MaxArgs
MaxArgs = 2

'调用主要处理流程
Call Main

'*******************************************************************************
'Main()过程定义
'*******************************************************************************
Private Sub Main()

Call ArgsErr

Call CheckLog

End Sub 'Main()


'*******************************************************************************
'出错退出函数,统一进行资源释放
'*******************************************************************************
private sub ErrExit()

Set Args = Nothing
Set wshShell = Nothing
Set 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 If

End Sub 'ArgsErr()

'*******************************************************************************
'日志检查
'*******************************************************************************
Private Sub CheckLog()

Dim sReposPath, sRevision, sCommand, sLog

sReposPath = cstr(Args(0))
sRevision = cstr(Args(1))

'合成svnlook 命令
sCommand = "D:/svn/bin/svnlook.exe log " + sReposPath + " -t " + sRevision

Set logExec = wshShell.Exec(sCommand)

'读取svnlook log命令返回结果
Do While Not logExec.StdOut.AtEndOfStream
sLog = logExec.StdOut.ReadAll()
loop

if len(sLog)<=10 then
WScript.StdErr.WriteLine("备注太短,至少10字!")
Call ErrExit()
end if
End Sub

[color=red]注意VBS代码文件的保存格式使用UNICODE,不然出现乱码,命令行工具需要在系统PATH路径中,否则需要全路径[/color]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值