2011-05-25 57 views
3

错误消息:Subversion控件否这样的文件或目录。无法打开文件

“的svn:无法打开文件“/Users/username/Projects/myproject/trunk/project/.svn/text-base/filetoupdate.h.svn-base :没有这样的文件或目录”

问:

我有一个问题我已经更换了一个文件中的一个项目(在Xcode)与一个新的文件(仅供参考,如果这有差别时,新文件与我之前删除的文件具有相同的名称)。

现在,当我尝试在Xcode中提交我的更改时,我收到上面详述的错误消息,无法提交更改(即添加新文件)。

在文件系统视图中(在屏幕左侧的Xcode中),该文件在其旁边有一个R(指示替换到存储库中)。

有谁知道如何解决它,所以我可以提交文件?

谢谢

回答

0

它看起来像是得到了地方混淆。为了解决问题,我只是复制了有问题的文件,将它们保存在一个新的名称下。从项目中删除原件,并将该文件的复制(重命名)版本添加到项目中。

它似乎是SV​​N不喜欢它,如果您添加和删除具有相同名称的文件。我试图通过终端清理SVN,但它对这个问题没有影响。但改变名字对我来说确实有效。

0

也许您的本地版本有权限问题。检查您的用户是否有权写入.svn目录。

好运

+0

感谢您的回复,是的,我有权限。很遗憾,这次不是问题。我已将我的修补程序放在下面,我确定有(或应该是)更好的解决方案。但现在它一切正常。 – Harold 2011-05-27 08:00:28

1

你在Mac或Windows?那些不区分大小写的文件系统会导致上述问题,当文件当前存在时名称相同,但情况不同。

要修复,检出Linux机器上的树,然后“svn rm”其中一个文件。

5

有使用不区分大小写的文件系统时,Subversion的bug或限制:

https://superuser.com/questions/303348/cant-checkout-in-subversion

检查出含有两个文件的名字只​​是大小写不同的存储库时,这个错误通常出现。当然,这些不能同时存在于不区分大小写的文件系统的相同目录中。 SVN可以提供更多有用的错误消息,但它不能真正解决问题。

您的问题有点不同,因为我认为文件filetoupdate.h(旧案例)不再存在于您的文件系统中。所以这不是工作目录中的案例冲突。但我想SVN试图在新案例中创建.svn/text-base中的文件,而旧版本仍然存在,并且失败(出于同样的原因)。

你可以尝试从Subversion首先删除文件,保留本地副本(未经测试)。新副本,必须从SVN控制移除,以用于提交成功:

svn rm --keep-local --force FileToUpdate.h 

而且旧副本必须拆除为好,让我们以后再添加新副本:

svn rm --keep-local filetoupdate.h 

提交这种变化:

svn commit 

现在希望你可以在新文件添加到版本控制:

svn add FileToUpdate.h 

如果这不起作用,您可能需要吹走整个结帐并重新开始。

+0

谢谢队友。有同样的问题,你的解决方案效果很好!在我的情况下,我重命名了其中一个文件,只是改变了大小写,而SVN无法应付它。 – pawel 2013-06-01 06:18:50

相关问题