pre-commit.bat.txt
@echo
rem SVN强制写注释的hooks脚本(Windows)
rem 文件名是: pre-commit.bat,放到repository/hooks目录下
setlocal
set SVN_BINDIR="C:\Program Files\VisualSVN Server\bin"
set REPOS=%1
set TXN=%2
rem 检查是否提交日志
%SVN_BINDIR%\svnlook log -t "%TXN%" "%REPOS%" | findstr "修改原因:" > nul
%SVN_BINDIR%\svnlook log -t "%TXN%" "%REPOS%" | findstr "修改日期:" > nul
if %errorlevel% gtr 0 goto nolog
rem 过滤文件类型
%SVN_BINDIR%\svnlook changed -t "%TXN%" "%REPOS%" | findstr "obj$"
if %errorlevel% EQU 0 (goto SuffixError1)
%SVN_BINDIR%\svnlook changed -t "%TXN%" "%REPOS%" | findstr "pdb$"
if %errorlevel% EQU 0 (goto SuffixError2)
%SVN_BINDIR%\svnlook changed -t "%TXN%" "%REPOS%" | findstr "idb$"
if %errorlevel% EQU 0 (goto SuffixError3)
%SVN_BINDIR%\svnlook changed -t "%TXN%" "%REPOS%" | findstr "manifest$"
if %errorlevel% EQU 0 (goto SuffixError4)
%SVN_BINDIR%\svnlook changed -t "%TXN%" "%REPOS%" | findstr "pch$"
if %errorlevel% EQU 0 (goto SuffixError5)
%SVN_BINDIR%\svnlook changed -t "%TXN%" "%REPOS%" | findstr "res$"
if %errorlevel% EQU 0 (goto SuffixError6)
%SVN_BINDIR%\svnlook changed -t "%TXN%" "%REPOS%" | findstr "exp$"
if %errorlevel% EQU 0 (goto SuffixError7)
%SVN_BINDIR%\svnlook changed -t "%TXN%" "%REPOS%" | findstr "ilk$"
if %errorlevel% EQU 0 (goto SuffixError8)
%SVN_BINDIR%\svnlook changed -t "%TXN%" "%REPOS%" | findstr "dep$"
if %errorlevel% EQU 0 (goto SuffixError9)
%SVN_BINDIR%\svnlook changed -t "%TXN%" "%REPOS%" | findstr "user$"
if %errorlevel% EQU 0 (goto SuffixError10)
%SVN_BINDIR%\svnlook changed -t "%TXN%" "%REPOS%" | findstr "suo$"
if %errorlevel% EQU 0 (goto SuffixError11)
%SVN_BINDIR%\svnlook changed -t "%TXN%" "%REPOS%" | findstr "ncb$"
if %errorlevel% EQU 0 (goto SuffixError12)
%SVN_BINDIR%\svnlook changed -t "%TXN%" "%REPOS%" | findstr "aps$"
if %errorlevel% EQU 0 (goto SuffixError13)
exit 0
:SuffixError1
echo 请不要提交受限制的文件类型obj,谢谢! 1>&2
exit 1
:SuffixError2
echo 请不要提交受限制的文件类型pdb,谢谢! 1>&2
exit 1
:SuffixError3
echo 请不要提交受限制的文件类型idb,谢谢! 1>&2
exit 1
:SuffixError4
echo 请不要提交受限制的文件类型manifest,谢谢! 1>&2
exit 1
:SuffixError5
echo 请不要提交受限制的文件类型pch,谢谢! 1>&2
exit 1
:SuffixError6
echo 请不要提交受限制的文件类型res,谢谢! 1>&2
exit 1
:SuffixError7
echo 请不要提交受限制的文件类型exp,谢谢! 1>&2
exit 1
:SuffixError8
echo 请不要提交受限制的文件类型ilk,谢谢! 1>&2
exit 1
:SuffixError9
echo 请不要提交受限制的文件类型dep,谢谢! 1>&2
exit 1
:SuffixError10
echo 请不要提交受限制的文件类型user,谢谢! 1>&2
exit 1
:SuffixError11
echo 请不要提交受限制的文件类型suo,谢谢! 1>&2
exit 1
:SuffixError12
echo 请不要提交受限制的文件类型ncb,谢谢! 1>&2
exit 1
:SuffixError13
echo 请不要提交受限制的文件类型aps,谢谢! 1>&2
exit 1
:nolog
echo 日志(Message)是跟踪文档的重要信息,请按照 >&2
echo 修改原因: >&2
echo 修改日期: >&2
echo 的格式提交。>&2
exit 1