无法打开.svn / text-base / file.svn-base?

时间:2010-01-25 22:11:21

标签: svn tortoisesvn

我正在使用TortoiseSVN。我刚刚对我的工作副本进行了一些更改,现在我去做了一些文件,但是在一个名为Search.aspx.cs的文件中,它说了

Commit failed (details follow):
Can't open file 
'C:\-----\trunk\.svn\text-base\Search.aspx.cs.svn-base': 
The system cannot find the file specified.

我尝试过进行SVN更新和SVN清理,没有任何东西可以恢复此文件。我甚至无法创建差异,因为它给出了关于丢失文件的类似错误。我该如何解决?我做了什么导致它?

12 个答案:

答案 0 :(得分:76)

这似乎是对你情况的可能答案吗?

(来自http://www.uwplatt.edu/csse/tools/subversion/subversion-help.html

  

“无法添加文件'(此处为名称)':已经是同名对象   存在。

     

     

“无法打开文件'folder.svn \ tmp \ text-base \ file.svn-base':   系统找不到该文件   指定“。

     

两者都意味着两个文件在同一个   文件夹具有相同的名称,除了   资本;例如   “Readme.txt”和“README.TXT”。 Unix的   和Subversion区分大小写,所以   这些文件被认为是   完全无关。但在Windows中   不区分大小写,所以当它   尝试更新README.TXT   Readme.txt(比如说),它破了。

     

解决问题的最可靠方法是   登录到Unix系统(如   io.uwplatt.edu)并使用unix笔记   检查那里的存储库。您   然后可以使用svn mv命令   重命名其中一个文件。如果你在   尝试添加文件的中间   您的存储库,您可以尝试使用   TortoiseSVN->重命名...重命名   现有文件完全是某种东西   不同然后更新。注意   你需要使用TortoiseSVN重命名   命令;只是重命名文件   Windows资源管理器无法修复您的   问题。

我有同样的错误,使用Tortoise SVN的repo浏览器能够确认存储库中有两个文件只有大小写字母相同的名称。您还可以通过删除其中一个文件来通过repo浏览器解决此问题(您可以先通过repo浏览器进行差异,以确保拥有所需的内容)。

答案 1 :(得分:10)

您可以复制工作文件: C:----- \树干\ Search.aspx.cs

到失踪者: C:----- \ trunk.svn \文本基\ Search.aspx.cs.svn基

它会起作用。

答案 2 :(得分:6)

我今天遇到类似的问题。

无法找到该文件.svn \ pristine \ 24 \ 24fd530d4bd82341fb514ab912c9e10adbc4ad89.svn-base 我用简单的方法来解决这个问题。

首先我删除这个项目的复制文件夹 然后我查找该文件在该文件夹下不存在。所以我只是从其他文件复制一个svn-base并用24fd530d4bd82341fb514ab912c9e10adbc4ad89.svn-base重命名。然后进行清理操作。之后,我遇到另一个文件丢失。使用相同的方式,最后我解决了这个问题。希望它可以帮到你

换句话说,解决方案是创建一个带有缺少文件名的新svn-base文件

答案 3 :(得分:5)

针对那些具有相同问题的人发布此信息 not 与不同大小写/案例中的相同文件名相关:

我不确定是什么导致它,但这个修复对我有用:

  • 将相关部分结帐到新的临时位置
  • 备份(如果失败)并删除主要位置的.svn文件夹
  • 使用临时位置
  • 中的.svn文件夹替换主位置中的.svn文件夹
  • 提交

这对我有用。我只改变了一个文件。不知何故,.svn文件夹已损坏。请在此之前备份您的工作。

答案 4 :(得分:2)

对我来说,问题是:区分大小写

Linux下的svn存储库提交:除了大小写以外,具有相同名称的2个文件 在Windows下更新的svn存储库:在更新或检出时出错=>系统找不到指定的文件。

答案 5 :(得分:2)

我有类似的问题“(无法打开文件'folder.svn \ tmp \ text-base \ file.svn-base':系统找不到指定的文件”) 。“

这不是因为区分大小写的问题。但是因为文件路径太长了。 因此,我重命名了名称较短的文件夹,并将其移至C盘内并成功签入。

因此,如果不是区分大小写,请注意该文件的完整路径的长度。

答案 6 :(得分:1)

我在意外擦除空的.svn / tmp文件夹(以及我的HD上的所有其他空文件夹)后出现此问题。除了恢复空的.svn / tmp文件夹之外,上述解决方案均无效(对于所有.svn文件夹)。

答案 7 :(得分:0)

看起来您的工作副本已损坏 - 缺少Search.aspx.cs的SVN基本文件。

我在这样的情况下做的是在另一个目录中单独签出以在基础上创建新的工作副本,导出我修改的工作副本,并将导出复制到新的工作副本。

答案 8 :(得分:0)

其余的更改是否正常?

如果他们确实复制了有问题的文件,请终止该目录,查看新副本并将文件重新添加

答案 9 :(得分:0)

我刚刚在这里检查过,因为我的TSVN刚刚触发了相同的错误。

在我的情况下,对相应目录的简单“清理”有帮助。

答案 10 :(得分:0)

解决方案(在SVN目录损坏的情况下;清理等不起作用)

  1. 备份(重命名目录)
  2. 再次结帐
  3. 重命名新目录
  4. 将旧目录重命名为旧名称
  5. 尝试再次提交(如果需要,可以小部分)
  6. 每当发生错误时:将有问题的SVN文件从新目录复制到损坏的源
  7. 重复直到开心;)

答案 11 :(得分:-2)

解决这个棘手问题的批处理解决方案。

for /f "tokens=* delims=" %%i in ('dir /s /b /a:d *.svn') do ( 
   if not exist %%i\text-base ( 
       mkdir "%%i\text-base"
   ) else (
echo already exist "%%i\text-base" 
   ) 
)