是否有一种方法可以自动恢复subversion提交



我在提交时经常遇到事务错误。据我所知,这些都是提交中途失败的结果。是否有一种方法,最好使用像TortoiseSVN这样的GUI,可以自动恢复提交失败的地方,并不断重试,直到所有内容都提交?

提交失败的例子:

提交失败(详情如下):放的'/svn/namcloud ! svn/wrk/02 b0f9ff - 2510 a147 - 892 a - 2 ee0b7b442dc/src/网站//模块/globalredirect/LICENSE.txt":无法读取响应体:已存在的连接被强制关闭远程主机。(http://XXX.XXX.XXX)

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

"An existing connection was forced close by the remote host"可能表示一个RST沿着TCP/IP连接返回。这可以由您和远程主机之间的任何内容生成。

我建议使用Wireshark之类的工具,看看是否有什么明显的东西。(如果你不习惯,这种诊断会很棘手,但还是值得快速看一看。)

正如A.H.建议的那样,您可能需要与服务器管理员取得联系。有可能一些连接超时的证据可能会显示在他们的web服务器或防火墙日志中,或者可能有一个立即明显的超时设置,例如SSL配置指令。

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

一种"更邪恶"的方法是创建一个脚本,将树中的每个文件单独提交,一遍又一遍,直到它们都成功。

当然,在一个大的提交中,有人可能会抱怨有100多个几乎相同的日志消息,每个文件一个,就像一个大的RCS/CVS提交一样,人们会在提交开始和完成之间"更新"并得到一些东西,但是然后你可以告诉他们你遇到的问题,以及你被迫诉诸的"解决方案",为了完成工作,尽管管理和支持很差。

不幸的是,对于特别大的文件,或者特别"坏"的网络问题,这仍然可能不起作用。

最坏的情况是,项目中的其他人也向你要脚本。

或者我猜有人会因此"解雇"你。但这可能是一个更好的结果,而不是在那种破坏你为实现目标所做的一切努力的环境中工作,然后在你试图克服障碍完成工作时让你"负责"。

SVN中的"事务"或"原子提交"就是这样-要么全有,要么没有。因此不存在auto_resume。你所能做的就是从头开始签入。

更好的解决方案是与适当的服务器管理员交谈,以调查和修复原因。光治标绝不是好主意

TortoiseSVN -> Settings…->对话2 ->重新打开提交和提交失败后的分支/标签对话框

我想这个功能已经被删除了。我在TortoiseSVN 1.7.11 Build 23600中没有看到这个选项

问题是一些网络提供商在短暂的超时后断开连接。你可以去中国的酒店抱怨(或者去加拿大的罗杰斯),他们不会解决这个问题。不幸的是,当提交被中断时,所有已经上传的文件都将丢失。因此永远不可能完成提交。

最新更新