Linux存储库和Windows XP之间的TortoiseSVN更新/清除错误

时间:2012-09-16 08:09:36

标签: tortoisesvn windows-applications

我无法理解,我不能再在我的便携式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

2 个答案:

答案 0 :(得分:2)

好的,这一切都归结为一个远程创建的目录,其名称以 space 结尾。文件本身就没问题;它所在的目录是不是

显然,更新时,目录已创建,但Windows缩短了名称,以排除最终空间。

为了增加诊断的难度,虽然TortoiseSVN 确实告诉我问题是什么,但它在Arial字体使\path\to\your \file中的空格不清楚的对话框中这样做了可识别的(一旦我知道在哪里看,并将其与其他人进行比较。这一点与左边的字母相距一点点。)

经验教训:仔细检查对话文件名,逐个字符(注意自己:如果可能的话,在Courier New中找到一种方法)。

答案 1 :(得分:1)

您可能在存储库中有两个文件,仅在大小写上有所不同。这是Windows上的一个问题。有关详细信息,请参阅此FAQ