gpt4 book ai didi

SVN 预提交 Hook

转载 作者:行者123 更新时间:2023-12-03 12:15:56 26 4
gpt4 key购买 nike

我目前正在尝试扩展我们已经存在的(和正在工作的)预提交批处理文件以提交到 SVN。第一部分阻止任何没有评论并按预期工作的提交。第二部分是阻止用户提交 SUO 文件的尝试,但这目前正在阻止所有提交。

我对 DO 脚本的理解不是很好,所以我怀疑这可能是我对 FindStr 的使用?

有人可以帮忙吗?

"C:\Program Files\VisualSVN Server\bin\svnlook.exe" log -t %2 %1 | FindStr [a-zA-Z0-9]
IF %ERRORLEVEL% EQU 0 GOTO OK
echo "Commit Comments are Required" >&2
exit 1
:OK
"C:\Program Files\VisualSVN Server\bin\svnlook.exe" diff -t %2 %1 | FindStr /R "[a-zA-Z]\.suo"
IF %ERRORLEVEL% EQU 0 exit 0
echo "SUO files cannot be committed" >&2
exit 1

最佳答案

findstr 如果找到了,则返回 0,如果没有找到,则返回 1。你刚刚倒了支票。

不需要 batch-foo,即使在 Windows 上,shell 也是交互式的,所以你可以尝试一下:

>dir | findstr ".sln"
15.01.2009 16:37 33.844 Project.sln

>echo %ERRORLEVEL%
0

>dir | findstr ".slngimpf"

>echo %ERRORLEVEL%
1

顺便说一句,写起来更容易

if errorlevel 0 andthencontinuewithwhatever

这样你的脚本对不祥的情况也很稳定:

set errorlevel=0

这将破坏任何 future 以正确方式使用 %errorlevel% 打印出错误级别的尝试。

(edit) 重要提示:我忘了说 if errorlevel 语法检查 errorlevel 是否大于或等于 到被测试的值。因此,要正确使用它,您必须始终首先检查最高错误,例如:

someCommand
if errorlevel 10 ...
if errorlevel 9 ...
if errorlevel 0 ...

关于SVN 预提交 Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/564631/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com