2010-06-23 87 views
2

我想从Windows上的批处理文件中确定是否需要从服务器更新本地SVN工作副本。在一个类似unix的机器上,我会运行“svn status -u”并计算'*'。如何在批处理文件中实现相同的功能?如何确定SVN工作副本是否需要更新(从脚本)?

背景:我试图确定一个依赖库是否过期,因为它需要一个长的时间来重新构建它,我们只能每3个月更新一次。这是一个自动构建过程。

+0

您还需要安装一个命令行Subversion客户端,如sliksvn – 2011-06-13 21:39:07

+0

请参阅此主题:[我如何知道我的工作副本是否不同步](http://stackoverflow.com/questions/6516214/如果我的工作拷贝不同步) – 2015-04-08 10:12:34

回答

3

如果我跟着你,也许是这样的:

svn st -u | find "*" 
if not "%errorlevel%"=="0" goto end 

svn update 

:end 

找到会将ERRORLEVEL设置为0,如果它成功地找到了 “*”。

编辑:意外地忽略了%errorlevel%周围的“”。

+0

这样做,我会踢任何人创建一个包含'*'的文件名。 – Harvey 2010-06-23 21:21:23

+0

注意我不小心忽略了%errorlevel%左右的“”。 – 2010-06-23 21:22:27

+0

我实际上使用'if errorlevel 1 goto do_build'来代替。 (我的逻辑与你的逻辑相反。) – Harvey 2010-06-23 22:26:26