错误讯息:
“svn:无法打开文件'/Users/username/Projects/myproject/trunk/project/.svn/text-base/filetoupdate.h.svn-base':没有这样的文件或目录”
问题:
我有一个问题我用一个新文件替换了一个项目(在Xcode中)中的文件(如果有参考,如果这有所不同,新文件的名称与我之前删除的名称相同)。 / p>
现在,当我尝试在Xcode中提交更改时,我收到上面详述的错误消息,无法提交更改(即添加新文件)。
在文件系统视图中(在屏幕左侧的Xcode中),文件旁边有一个R(表示在存储库中替换)。
有谁知道如何修复它以便我可以提交文件?
由于
答案 0 :(得分:5)
使用不区分大小写的文件系统时,Subversion存在错误或限制:
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
如果这不起作用,您可能需要吹掉整个结帐,然后重新开始。
答案 1 :(得分:1)
您使用的是Mac还是Windows?那些具有不区分大小写的文件系统,当出现上述问题时 当前存在的文件具有相同的名称但具有不同的情况。
要修复,请在Linux计算机上签出树,然后“svn rm”其中一个文件。
答案 2 :(得分:0)
也许您的本地版本存在权限问题。检查您的用户是否具有为.svn目录编写的权限。
祝你好运答案 3 :(得分:0)
看起来有些事情在某处感到困惑。为了解决这个问题,我只是复制了有问题的文件,并以新名称保存。从项目中删除了原件,并将文件的复制(重命名)版本添加到项目中。
如果添加和删除具有相同名称的文件,SVN似乎不喜欢它。我尝试通过终端清理SVN,但它对此问题没有影响。但更改名称确实对我有用。