不知为何,我无法再在便携式 Windows XP Professional SP3 机器上的开发目录上运行 TortoiseSVN 更新,出现以下错误:
之前的操作还没有完成;如果中断,请运行“清理”
请执行“清理”命令。
如果我尝试运行清理,我会收到另一个错误,
无法处理以下路径:无法将 $ROOT_DIR/.svn/tmp/tmp-... 移动到 $ROOT_DIR/path/where/thing/should/go:没有这样的文件或目录
我已经验证了这两个文件都存在,实际上从 CMD.EXE 提示符我可以使用这两个文件名发出 MOVE 并让它正常工作。这是没有用的,因为下次 SVN 在创建不同的tmp
文件名后尝试自行重复操作,而当 CMD 成功时,SVN 会失败。
更新:在这两种情况下,路径长度都远低于 PATH_MAX,目标文件系统是 NTFS,并且权限正常。也许我现在会尝试使用FileMon来看看 TortoiseSVN 到底在做什么。
我尝试降级 TortoiseSVN 但无济于事。其他存储库在同一台机器之间工作正常。
TortoiseSVN 1.7.9, Build 23248 - 32 Bit , 2012/08/30 18:25:37
Subversion 1.7.6,
apr 1.4.6
apr-utils 1.3.12
neon 0.29.6
OpenSSL 1.0.1c 10 May 2012
zlib 1.2.7
服务器(OpenSuSE Linux 12.2)和客户端现在都运行最新版本的 SVN。
在 Windows 上,我似乎也无法获得更多信息日志或信息(我对 TortoiseSVN 不是很熟练,我一直使用 Linux 命令行版本)。
我可能会删除本地副本并运行结帐,但它大约有 2 GB 的数据,而且我的连接速度很慢,所以它实际上更像是“从物理上飞到服务器位置并将铜质以太网连接到本地网络那里”的替代品。我将其保留为最后的选择,核选项;我真的很想了解问题是什么,因为我担心它可能会再次发生。
更新
我试图远程删除所涉及的子目录,在服务器上提交删除;在本地删除子目录,并清空.svn/tmp
我发现 16 个tmp
文件的子目录,一个 PNG 的所有副本都会导致问题。
我仍然无法执行任何 SVN 子命令,得到“运行清理!” 错误; 关于清理;我尝试将 tmpfile 复制到一个不再存在的目录中,该文件在任何地方都不再存在。
我尝试在本地重新创建目录(但不是文件!),没有任何更改。
使用 FileMon,我将源 PNG 跟踪到8e4c2389cf9d85c8b8ee54d49ea053c752a38187.svn-base
.svn/pristine 子目录中,尝试将其删除并让 SVN 抱怨。我尝试将它复制到它的预期目的地(以便文件原样和文件原样相同),没有乐趣。
更新
嗯,这很奇怪。我决定使用 FileMon 跟踪TortoiseSVN 所做的一切。我可以看到它检查wc.db
并搜索该项目,检查它.svn/pristine
(并找到它),复制它(如果你问我的话......不必要).svn/tmp
,最后$DESTINATION_FILE
使用 Windows Open() API 检查(使用正确的大小写)。并且找不到路径。但是文件在那里,我可以看到它(名称少于 8.3 个字符)。为什么找不到PATH而不是找不到文件?