在csvn\data\repositories\具体项目\hooks文件夹下新增文件pre-commit.bak,文件内容如下:
=========================================================================
@echo off
rem SVN强制写注释的hooks脚本(Windows)rem 文件名是: pre-commit.bat,放到repository/hooks目录下
setlocal
rem set SVN_BINDIR="E:\csvn\bin\svnlook.exe"
rem 若SVN Server服务端机器没有设置path变量,则用上述方法定义svnlook
set REPOS=%1
set TXN=%2
rem 检查是否提交日志,至少10个字符
svnlook log "%REPOS%" -t "%TXN%" | findstr ".........." > nul
if %errorlevel% gtr 0 goto nolog
rem 检查是否提交日志,验证Jira Key
set path=%path%;E:\csvn\bin;C:\Program Files (x86)\GnuWin32\bin
svnlook log -t "%TXN%" "%REPOS%" | grep.exe "[A-Z]-[0-9]" > nul || goto invalid
rem 过滤文件及文件夹类型
svnlook changed -t "%TXN%" "%REPOS%" | findstr /i "suo$"
if %errorlevel% EQU 0 (goto SuffixError)
svnlook changed -t "%TXN%" "%REPOS%" | findstr /i "user$"
if %errorlevel% EQU 0 (goto SuffixError)
svnlook changed -t "%TXN%" "%REPOS%" | findstr /i "Thumbs.db$"
if %errorlevel% EQU 0 (goto SuffixError)
svnlook changed -t "%TXN%" "%REPOS%" | findstr /i "desktop.ini$"
if %errorlevel% EQU 0 (goto SuffixError)
svnlook changed -t "%TXN%" "%REPOS%" | findstr /i "\/bin\/"
if %errorlevel% EQU 0 (goto SuffixError)
svnlook changed -t "%TXN%" "%REPOS%" | findstr /i "\/obj\/"
if %errorlevel% EQU 0 (goto SuffixError)
svnlook changed -t "%TXN%" "%REPOS%" | findstr /i "\/packages\/"
if %errorlevel% EQU 0 (goto SuffixError)
svnlook changed -t "%TXN%" "%REPOS%" | findstr /i "\/.vs\/"
if %errorlevel% EQU 0 (goto SuffixError)
svnlook changed -t "%TXN%" "%REPOS%" | findstr /i "~$"
if %errorlevel% EQU 0 (goto SuffixError)
svnlook changed -t "%TXN%" "%REPOS%" | findstr /i "vshost.exe$"
if %errorlevel% EQU 0 (goto SuffixError)
svnlook changed -t "%TXN%" "%REPOS%" | findstr /i "vshost.exe.config$"
if %errorlevel% EQU 0 (goto SuffixError)
svnlook changed -t "%TXN%" "%REPOS%" | findstr /i "vshost.exe.manifest$"
if %errorlevel% EQU 0 (goto SuffixError)
exit 0
:SuffixError
echo bin、obj、packages、vs目录;*.suo、*.user、Thumbs.db、desktop.ini和vshost文件不允许上传,请忽略! 1>&2
exit 1
:nolog
echo svn message不能为空, 请填写JIRA系统相应的Key+主题! 例如: XDYY-1 系统性能测试。 1>&2
exit 1
:invalid
echo svn message未包含有效的Jira Key, 请填写正确的Jira Key+主题! 例如: XDYY-1 系统性能测试。 1>&2
exit 1