【问题标题】:svnlook cat :: batch script to limit the commit size to 10MBsvnlook cat ::批处理脚本将提交大小限制为10MB
【发布时间】:2015-04-22 09:27:30
【问题描述】:

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

@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

错误获取是 提交失败(详情如下): 提交被 pre-commit 钩子(退出代码 1)阻止,输出: svnlook:E205001:尝试“svnlook help”以获取更多信息 svnlook: E205001: 缺少存储库路径参数

如果有人可以帮助编写此脚本。谢谢!

【问题讨论】:

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


    【解决方案1】:
    1. 使用svnlook cat,您只能输出单个文件
    2. 为了获取事务中任何文件的大小,您必须使用另一个子命令:filesize
    3. filesize 在每个文件的基础上工作,您必须使用 changed 子命令将处理中的文件列表传递到 xargs(或它的 Win-replacement)

    【讨论】:

    • 我认为文件大小会起作用。但我以前从未尝试过该命令。如果可以,请给我正确的语法,这将非常有帮助。我正在尝试以下命令,但它给出了错误。 svnlook 文件大小 %REPOS% -t %TXN% |设置大小=%%~ZA
    • @user4585570 - 我记得%%~ZA 的意思,但无论如何你必须定义 file from transaction svnlook filesize %REPOS% -t %TXN% file/in/transaction 并对每个文件重复此命令。文件大小将输出到标准输出 10 位数字 - 大小 以字节为单位
    猜你喜欢
    • 2016-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 2021-08-01
    • 2011-03-26
    • 1970-01-01
    • 2012-03-10
    相关资源
    最近更新 更多