无法使用TortoiseSVN签出 - 存储库中的两个文件的“文件已存在”错误

时间:2014-03-31 18:12:35

标签: svn tortoisesvn

当我尝试检查大型存储库的头版本时,它在两个特定文件上失败:

Error | Failed to run the WC DB work queue associated with
Error | 'C:\Work\gpss_src\cpp\apps\RTRover\lib', work item 6625 (file-install
Error | cpp/apps/RTRover/lib/prn.h 1 0 1 1)
Error | Can't move 'C:\Work\gpss_src\.svn\tmp\svn-F3F9679B' to
Error | 'C:\Work\gpss_src\cpp\apps\RTRover\lib\prn.h': Cannot create a file when that
Error | file already exists.

我发现了类似的问题,但不是这个问题。案例没有问题 - 无论如何,整个存储库中确实只有一个prn.h文件。如果我使用svn move重命名prn.h,我会得到与prn.cpp相同的错误。

我到目前为止找到的唯一解决方案是使用svn move重命名prn.h和prn.cpp,但我不想重命名文件。我也尝试重命名原始文件并添加一个空的prn.h,但这也会导致此错误。如果我重命名原始文件并且不创建虚拟prn.h或prn.cpp,则所有内容都将在没有任何错误的情况下结帐。在Linux环境中检查源代码也没有任何问题。

我的猜测是存储库的SVN数据库存在问题,或者存在版本不兼容的问题。 SVN服务器使用的是1.6.11版。客户端正在使用TortoiseSVN 1.8.5,它与SVN版本1.8.8链接。

1 个答案:

答案 0 :(得分:3)

您无法在Windows上拥有名为prn.*的文件。 Windows上有某些保留名称

  • PRN
  • CON
  • AUX
  • NUL
  • LPT1/2/3/4
  • CLOCK$

具有这些名称的文件,无论在Windows系统上无法创建后缀。您通常会收到一些时髦的错误,例如错误的参数只读文件文件已存在

您可以通过以下方式证明:

C:> notepad test.txt
C:> move test.txt prn.txt
The parameter is incorrect.

不幸的是,除了使用其他操作系统外,没有其他解决方案。在这种情况下,即使Cygwin也不会拯救你。