今天用svn提交代码,一直报错!
报错信息:
Commit failed (details follow):
Error running context: 远程主机强迫关闭了一个现有的连接。
网上的方法如clean up、clear data我都试了,还是一样的错误。
我重新拉一个svn版本库,试了试,还是一样的错误。
最后我一个文件一个文件单独提交,发现只有其中的5个文件提交不上,其他都可以提交。
我新建一个文件,提交成功。
删除一个文件,提交成功。
修改一个文件,提交成功。
貌似只有那5个文件有毒。
尝试,break lock,压根没有lock哪里来的break lock。我只好自己lock之后再break lock,还是不行,报一样的错误。
我把其中一个文件copy出来 add再提交,还是一样的错误。
确定是文件内容造成。
逐步,删除copy出来的那个文件,最后确定问题代码是出在下面:
private String getPath(HttpServletRequest request) {
String basePath = getBasePath(().getServletContext());
String dateStr = new SimpleDateFormat("yyyyMM").format(new Date());
File temp = new File(basePath + "/" + dateStr + "/");
if (!()) {
();
}
String path = dateStr + "/" + () + ".jpg";
return basePath + path;
}
只要这段代码出现在任何文件,那么那个文件一定不能提交。
初步怀疑,这段代码会触发svn某些东西,包括检查,由于这些操作会占用一定时间,然后触发svn连接超时,进而导致“远程主机强迫关闭了一个现有的连接”。
解决办法,将问题代码(不是问题文件的所有代码哦)逐行提交,就是说每次只提交一行即可,直到所有问题代码全部提交上去。