1

我有一个批处理文件,我从带有 service pack 3 的 Windows XP 工作站运行,它使用 SQL 2005 中的 sqlcmd.exe 将 SQL 更改应用于数据库。

我有一个TortoiseSVN的命令行条目,可以自动更新我的存储库的本地副本,如下所示:

tortoiseproc /command:update /path:"C:/SVN/My Code/Dev/2009.07.23" /closeonend:3

根据文档,如果在更新期间发生任何错误、冲突或合并, /closeonend:3选项将使 TortoiseSVN 对话框保持打开状态。

如果确实发生了这种情况,并且用户在没有解决问题的情况下关闭了对话框,他们可能会忽略我们希望应用于给定分支的测试数据库的更改。

当 TortoiseSVN 对话框因更新后出现错误、冲突或合并而关闭时,ERRORLEVEL是否会设置为某个非零值,从而使我能够绕过批处理文件的其余部分?或者即使代码不完全正确,它是否会愉快地返回0以表明它已成功完成工作?

4

2 回答 2

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
于 2011-02-03T21:21:31.687 回答
0

在执行批处理文件中的其他操作之前,我最终只是手动更新了本地 SVN 存储库。

于 2010-03-24T15:14:14.810 回答