2

svn update失败时,svn cleanup通常需要在恢复更新之前执行。如果失败频繁,这可能会很烦人。

我正在寻找一种使 SVN 更新命令更加健壮的方法。理想情况下,如果有一个--cleanup-and-continue-on-failure开关会很好,但我在文档中看不到任何看起来有帮助的东西。有没有我可以使用的工具来代替命令行或 Tortoise 来为我做这件事?

作为参考,以下是导致我的麻烦的特定错误,听起来它们可能是由连接中断引起的。它们通常发生在新结帐期间拉下几十个文件后,大约每 60 秒一次。

svn: E140001: zlib (uncompress): corrupt data: Decompression of svndiff data failed

svn: E175009: XML parsing failed: (200 OK)

svn: E185004: Unexpected end of svndiff input

更新:

看起来最近版本的 SVN 在一定程度上修复了这个问题,使得存储库只有一小部分时间处于不一致状态,但能够强制更新在失败时重试仍然很好。

有没有人已经为此编写了一个基于脚本的解决方案?有人想试一试吗?

4

1 回答 1

1

在处理了这个问题一段时间后,它最近又出现了,我选择了快速而肮脏的解决方案(仅限 Windows/DOS):

:Beginning
@ECHO ON
svn cleanup %1
svn update %1
@ECHO OFF
IF ERRORLEVEL 1 GOTO Beginning

我将它命名为angerous-update.bat 并停留在我的“脚本”文件夹中(在我的PATH 中)。Shell 集成会很好,但我可以更改我的工作流程以进行重大更新。

希望其他人有一天会发现这很有用!

于 2014-04-28T14:53:18.840 回答