我有一个批处理文件,我从Windows XP w / service pack 3工作站运行,它使用SQL 2005中的sqlcmd.exe将SQL更改应用于数据库。
我有 TortoiseSVN 的命令行条目来自动更新我的存储库的本地副本,如下所示:
tortoiseproc /command:update /path:"C:/SVN/My Code/Dev/2009.07.23" /closeonend:3
根据the documentation,如果在更新期间发生任何错误,冲突或合并, / closeonend:3 选项将打开TortoiseSVN对话框。
如果发生这种情况,并且用户在没有解决问题的情况下关闭对话框,他们可能会省略我们想要应用于给定分支的测试数据库的更改。
如果在更新后出现错误,冲突或合并时关闭TortoiseSVN对话框, ERRORLEVEL 会设置为某个非零值,启用我绕过剩下的批处理文件?或者它会愉快地返回 0 以表明即使代码不正确也能成功完成工作吗?
答案 0 :(得分:1)
老问题,但我今天遇到了同样的事情并且有一个解决方案......
TortoiseProc在出错时返回-1,在成功时返回0,所以以下解决了我的问题:
TortoiseProc /path:"%targetdir%" /command:update /closeonend:3
IF %ERRORLEVEL% NEQ 0 goto SvnError
:SvnSuccess
echo It worked!
goto Done
:SvnError
echo It didn't work!
:Done
答案 1 :(得分:0)
我最终只是在批处理文件中执行其他操作之前手动更新我的本地SVN存储库。