检查Subversion存储库时出错(svn:您的.svn/tmp目录可能丢失或损坏;)

Dav*_*ton 8 svn version-control repository svn-checkout

我试图检查一个完整的subversion存储库,包括所有分支和标签:

svn co svn+ssh://path/to/project
Run Code Online (Sandbox Code Playgroud)

这运行了一段时间,但在检查分支时我收到以下错误:

svn: Your .svn/tmp directory may be missing or corrupt; run 'svn cleanup' and try again
svn: Can't open file 'project\branches\BRANCH\source\java\com\bS\.svn\tmp\text-base\Event.java.svn-base': The system cannot find the path specified.
Run Code Online (Sandbox Code Playgroud)

所以我尝试通过以下方式手动检查分支:

svn co svn+ssh://path/to/project/branches/BRANCH
Run Code Online (Sandbox Code Playgroud)

这运行罚款,我得到分支机构.然后,我可以将分支复制到完整项目的branches目录中并继续结帐.但它一直在其他分支上遇到这个问题.

有没有人知道为什么我不能将分支机构作为整个项目的一部分签出,但我可以自己检查一下吗?

Vic*_*tor 7

通过在svn命令的参数中指定完全限定的路径,可以在Windows上解决此问题.例如而不是

c:\dev> svn co http://repoman.example/svn/myproj/trunk myproj
Run Code Online (Sandbox Code Playgroud)

试试这个

c:\dev> svn co http://repoman.example/svn/myproj/trunk c:\dev\myproj
Run Code Online (Sandbox Code Playgroud)

由于某种原因,路径长度限制仅适用于相对路径.


Dav*_*ton 6

好的,所以我实际上找到了我自己的问题的答案,至少是解决方案.事实证明,它与路径的长度有关.在我上面的问题中,我编辑了路径名称,但没有发布公司代码的详细信息,但实际上它恰好是一个名字很长的文件,它存在于一个非常深的嵌套目录中.

当我自己检查分支时,我正在检查它到我的硬盘驱动器中的更高级目录,它正在工作.我尝试将分支直接签出到我为项目创建的branches目录中,但它也失败了,所以我想它必须与路径有关.

我现在将整个项目检查到D:\ ProjectDir,一切似乎都顺利进行.我想颠覆路径的长度是有限制的,所以它无法获得一些必需的文件.

*更新:限制为255个字符.事实证明,在我的情况下,路径是269个字符.因此,只需上升1个目录级别即可解决问题.

  • 你在Windows上.对?最大路径长度是一个很大的Windows问题.我已经看到使用此隐藏垃圾邮件.Windows资源管理器和反恶意软件无法查看文件,但它们就在那里.具有讽刺意味的是Windows CAN处理这些长路径,NTFS CAN处理这些路径.但是,Windows资源管理器和基本文件打开/关闭库不能.您可以使用//路径来编写技术,这些路径可以让您解决这些问题,但没有人使用它们.为什么MS仍然在Windows中有这种虚假限制是任何人的猜测.特别是因为.NET使用长路径名. (2认同)