需求:windows服务器svn服务器限制提交文件的大小
具体实现:在对应仓库的hooks内创建pre-commit.bat脚本实现
可能出现问题:
1、创建pre-commit.bat脚本,但是提交后发现脚本未被触发
网络服务账户无执行bat脚本权限,将登入身份换成本地系统账户,保存后重启服务即可
pre-commit.bat
@echo off
setlocal enabledelayedexpansion
set REPOS=%1
set TXN=%2
rem MAX_SIZE value is byte
set MAX_SIZE=5242880
for /f "delims=" %%a in ('svnlook changed -t %TXN% %REPOS%') do (
set var=%%a
for /f %%i in ('svnlook filesize -t %TXN% %REPOS% !var:~4!') do (
if %%i gtr %MAX_SIZE% (
set /a size=%%i/1024
echo Uploading file oversize. File: !var:~4! Size: !size!KB 1>&2
exit 1
)
)
)
exit 0