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

时间:2015-02-20 16:14:17

标签: windows batch-file svn pre-commit svnlook

我正在创建一个预提交钩子脚本,它将用户(开发人员)限制为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 个答案:

答案 0 :(得分:0)

  1. 使用svnlook cat,您只能输出单个文件
  2. 为了获得事务中任何文件的大小,您必须使用另一个子命令:filesize
  3. filesize基于每个文件工作,您必须使用xargs子命令管道进入changed(或它的Win替换)文件列表