我的机器上安装了SVN和Tortoise SVN。我创建了一个批处理文件“.bat”。我正在尝试获取Log消息以验证在提交之前在UI中提供的消息。
我尝试了this回答失败并出现以下错误。
svnlook: E720003: Can't open file 'C:\Users\GOPICH~1\AppData\Local\Temp\svnC891.tmp\format': The system cannot find the path specified.
任何人都可以指导我问题是什么(或)无论如何都要实现同样的目标。
答案 0 :(得分:0)
svnlook log
附加\format
时,我遇到了问题。
从stderr返回到提交失败对话框的参数称为:
path depth messagefile cwd
当提交失败时,使用此答案中的代码打印这些参数。
第一个和第三个是位于临时目录中的.tmp文件。 (第一个是要提交的文件列表)。
第三个参数是消息文件,因此您可以使用它来检查是否使用了消息。
@echo off
findstr . "%~3" >nul
if errorlevel 1 echo args: %* >&2 & exit 1
exit 0
如果消息文件为空,则会导致提交失败,否则允许提交成功。
的问题:
似乎可以改进findstr
模式。这可能是个人偏好,因此请linked answer pattern保持问题。
想法aschipfl在评论中分享:
@echo off
if %~z3 gtr 0 (exit 0) else exit 1
消息文件中的任何字符都会使文件的大小不为零。
AFAIK,stdout被重定向为钩子脚本,因此不可用,
所以可能不需要@echo off
。
注意:使用SVN-client 进行测试可能是svnlook log
的原因
给了我奇怪的结果。感谢aschipfl提供的信息。