如何确定'svn up'是否成功完成?

时间:2012-04-04 23:54:49

标签: svn

我每天晚上在自动化测试开始前从我的php脚本(在SuSE上)运行sudo svn --username radek update ".$codebase." --force";。因此,测试是在今天检查的最新代码上完成的。

我怎么能确定知道svn up成功完成了?那么如果没有触发测试呢?

3 个答案:

答案 0 :(得分:5)

如果出现任何故障(例如网络错误/磁盘错误),

svn update应返回非零值

然而,另一个考虑因素是合并冲突。 svn update认为“成功”更新了包含合并冲突的工作副本。

因此,根据您的应用程序运行svn status -q并查找具有“C”状态的文件可能很重要 - 我假设您希望在更新完成时采取不同的操作与冲突。

答案 1 :(得分:4)

从命令行,我经常运行svn status -q,如果一切都是最新的,它应该不打印。否则,它将错误输出,或显示尚未更新的文件。

正如其他人所提到的,svn up如果因任何特殊原因失败,则应返回非零值。

您应该考虑使用像Jenkins这样的连续构建系统。您可以让Jenkins在每次提交时运行您的测试,或者自动让它在白天的特定时间运行。这样,你就不会重新发明轮子。此外,Jenkins可以通过电子邮件发送测试结果并为您提供显示它们的位置。

答案 2 :(得分:3)

使用svn命令的返回码(应该为零),或者检查std-output的最后一行。它应该是这样的:

At revision 123.

请记住,您应该拥有正确的LOCALE