有没有办法在subversion提交中自动恢复?

时间:2011-09-19 21:29:31

标签: svn commit pre-commit

提交时我得到了交易错误。据我所知,这些是中途失败的提交结果。有没有办法,最好使用像TortoiseSVN这样的GUI,它会自动恢复失败的提交并继续重试,直到所有内容都提交?

提交失败的示例:

  

提交失败(详情如下):   PUT的   '/svn/namcloud/!svn/wrk/02b0f9ff-2510-a147-892a-2ee0b7b442dc/src/sites/all/modules/globalredirect/LICENSE.txt':   无法读取响应正文:现有连接被强制关闭   远程主机。    (http://XXX.XXX.XXX)

5 个答案:

答案 0 :(得分:3)

这不是完全自动的,但有一个TortoiseSVN - > Settings... - > Dialogs 2 - > Reopen commit and branch/tag dialog after a commit failed复选框。这会减少烦恼,自动恢复您的日志消息。

“远程主机强行关闭现有连接”可能表示{/ 1}}沿TCP / IP连接返回。这可以由您和远程主机之间的任何内容生成。

我建议抓住像Wireshark这样的东西,看看是否有任何明显的东西。 (如果你不习惯,这种诊断很棘手,但值得快速查看。)

正如A.H.建议的那样,您可能希望与服务器管理员联系。有可能在他们的网络服务器或防火墙日志中显示连接超时的一些证据,或者在例如可能存在明显的超时设置。 SSL配置指令。

答案 1 :(得分:3)

不幸的是,我们并不总是可以选择使用什么,或者我们在服务器端提供什么样的支持/管理。

一种“更邪恶”的方法是创建一个脚本,一次又一次地提交树中的每个文件,直到它们都成功。

当然,在大型提交中,有人可能会抱怨有100多条几乎相同的日志消息,每个文件一个,就像一个大的RCS / CVS提交一样,人们会“更新”并获得“之间”的内容提交和结束的开始,但是你可以告诉他们你遇到的问题,以及你被迫采取的“解决方案”,以便尽管管理和支持不善,但仍然可以完成工作。

不幸的是,对于特别大的文件,或者特别“糟糕”的网络问题,这仍然可能无效。

最糟糕的情况是,项目中的其他人也会恳求您使用该脚本。

或者我猜有人可以“解雇”你。但是,这可能比在破坏你完成目标的一切努力的环境中工作更好,然后在你试图克服障碍以完成任务时让你“负起责任”。

答案 2 :(得分:2)

SVN中的“事务”或“原子提交”就是 - 全部或全部。因此,没有auto_ resume 。你所能做的就是从一开始就开始登记。

更好的解决方案是与相应的服务器管理员交谈以调查并修复原因。治愈症状绝不是一个好主意。

答案 3 :(得分:2)

  

TortoiseSVN - >设置... - >对话2 - >重新打开提交和   提交失败后的分支/标记对话框

我认为此功能已被删除。我没有在TortoiseSVN 1.7.11 Build 23600

中看到这个选项

答案 4 :(得分:0)

问题是某些网络提供商在短暂的超时后中断了连接。向您想要在中国的一家酒店(或加拿大的罗杰斯)抱怨的所有事情,他们都不会解决。不幸的是,当提交被中断时,所有已经上传的文件都会丢失。因此,永远不可能完成提交。