来自命令行的TortoiseSVN和“IF ERRORLEVEL”?

时间:2009-07-23 21:12:29

标签: tsql tortoisesvn batch-file errorlevel

我有一个批处理文件,我从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 以表明即使代码不正确也能成功完成工作吗?

2 个答案:

答案 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存储库。