我无法理解,我不能再在我的便携式Windows XP Professional SP3机器上的开发目录上运行TortoiseSVN更新,收到错误:
以前的操作尚未完成;如果被中断则运行'清理' 请执行'清理'命令。
如果我尝试运行清理,我会收到另一个错误,
无法处理以下路径:无法将$ ROOT_DIR / .svn / tmp / tmp -...移动到$ ROOT_DIR / path / where / thing / should / go:没有这样的文件或目录
我已经验证两个文件都存在,并且实际上来自CMD.EXE提示我能够发出带有这两个文件名的MOVE并使其正常工作。这没用,因为下次SVN在创建不同的tmp
文件名后尝试重复操作,并且CMD成功后,SVN失败。
UPDATE :两种情况下的路径长度都远低于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的数据,而且我的连接速度很慢,所以它实际上更像是“从物理上飞到服务器位置并将铜线以太网连接到那里的本地网络“另类。我认为这是一种最后的垄断,核选择;我真的很了解问题所在,因为我担心它会再次发生。
更新
我试图远程删除所涉及的子目录,在服务器上提交删除;在本地删除子目录,并清空我找到16个.svn/tmp
文件的tmp
子目录,一个PNG的所有副本都会导致问题。
我仍然无法执行任何SVN子命令,获得“运行清理!”错误;清理;我试图将tmp文件复制到永远不会存在于任何地方的永不充分诅咒的.PNG文件,尝试将其复制到一个不再存在的目录中。
我尝试在本地重新创建目录(但不是文件!),没有更改。
使用FileMon,我将源PNG跟踪到.svn / pristine子目录中的8e4c2389cf9d85c8b8ee54d49ea053c752a38187.svn-base
,尝试删除它并让SVN抱怨。我尝试将它复制到预定目的地(因此文件应该是它,文件就像它一样),没有快乐。
更新
嗯,这很奇怪。我决定使用FileMon跟踪TortoiseSVN正在做的所有。我可以看到它检查wc.db
并搜索该项目,在.svn/pristine
中检查它(找到它),在.svn/tmp
中复制它(如果你问我那么不必要......),最后使用Windows Open()API检查$DESTINATION_FILE
(使用正确的大小写)。并且找不到PATH。然而文件是,我可以看到它(名称少于8.3个字符)。为什么找不到 PATH 而没有找到 FILE ?
答案 0 :(得分:2)
好的,这一切都归结为一个远程创建的目录,其名称以 space 结尾。文件本身就没问题;它所在的目录是不是。
显然,更新时,目录已创建,但Windows缩短了名称,以排除最终空间。
为了增加诊断的难度,虽然TortoiseSVN 确实告诉我问题是什么,但它在Arial字体使\path\to\your \file
中的空格不清楚的对话框中这样做了可识别的(一旦我知道在哪里看,并将其与其他人进行比较。这一点与左边的字母相距一点点。)
经验教训:仔细检查对话文件名,逐个字符(注意自己:如果可能的话,在Courier New中找到一种方法)。
答案 1 :(得分:1)
您可能在存储库中有两个文件,仅在大小写上有所不同。这是Windows上的一个问题。有关详细信息,请参阅此FAQ。