1

提交时我经常遇到事务错误。据我所知,这些是提交中途失败的结果。有没有办法,最好使用一个 GUI,比如 TortoiseSVN,它会在失败的地方自动恢复提交,并继续重试直到所有内容都提交?

提交失败的示例:

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

4

5 回答 5

3

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

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

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

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

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

或者我猜有人可能会“解雇”你。但这可能比在那种破坏你为实现目标所做的一切努力,然后在你试图克服他们完成任务的障碍时让你“负责”的环境中工作更好。

于 2012-06-04T22:01:11.170 回答
3

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

“现有连接被远程主机强行关闭”可能表示RST沿着 TCP/IP 连接返回。这可以由您和远程主机之间的任何东西生成。

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

正如 AH 建议的那样,您可能需要与服务器管理员联系。连接超时的一些证据可能会出现在他们的网络服务器或防火墙日志中,或者在 SSL 配置指令中可能会立即出现明显的超时设置。

于 2011-09-19T23:20:50.600 回答
2

SVN 中的“事务”或“原子提交”正是如此——全有或全无。因此没有 auto_ resume。您所能做的就是从一开始就开始办理登机手续。

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

于 2011-09-19T22:39:09.060 回答
2

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

我认为此功能已被删除。我在 TortoiseSVN 1.7.11 Build 23600 中没有看到这个选项

于 2013-02-18T17:48:48.720 回答
0

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

于 2018-12-08T14:52:41.987 回答