svnlook cat :: 将提交大小限制为 10MB 的批处理脚本

svnlook cat :: batch script to limit the commit size to 10MB

我正在努力创建一个预提交挂钩脚本,它将限制用户(开发人员)提交 10MB。所以这将有助于减少存储库的大小。下面是使用 subversion 1.8.

在 windows 服务器上需要 运行 的脚本
@echo off  
setlocal 

@CD C:\Progra~2\VISUAL~1\bin
Set REPOS=%1
Set TXN=%2
Set MAX_SIZE=10485760
svnlook cat %REPOS% -t %TXN% | Set size=%%~ZA
If %%size%% GEQ %%MAX_SIZE%% (goto err) else exit 0
:err  echo. 1>&2  
echo Your commit has been blocked because your commit size is greater than    10MB 1>&2  
echo Please reduce your commit file size to below 10MB and try again 1>&2
echo Thanks 1>&2
exit 1

获取错误是 提交失败(详情如下): 提交被预提交挂钩(退出代码 1)阻止并输出: svnlook:E205001:尝试 'svnlook help' 获取更多信息 svnlook:E205001:缺少存储库路径参数

如果有人可以帮助这个脚本。谢谢!

  1. 使用 svnlook cat 您可以只输出单个文件
  2. 为了获取事务中任何文件的大小,您必须使用另一个子命令:filesize
  3. filesize 在每个文件的基础上工作,您必须通过 changed 子命令 [=19= 管道进入 xargs(或它的 Win 替换)事务中的文件列表]