【问题标题】:Subversion control No Such file or directory. Can't open fileSubversion control 否 此类文件或目录。无法打开文件
【发布时间】:2011-05-25 09:25:06
【问题描述】:

错误信息:

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

问题:

我有一个问题,我用新文件替换了项目(在 Xcode 中)中的一个文件(作为参考,如果这有所不同,新文件与我之前删除的文件同名)。

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

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

有谁知道如何修复它以便我可以提交文件?

谢谢

【问题讨论】:

    标签: xcode svn


    【解决方案1】:

    在使用不区分大小写的文件系统时,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
    

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

    【讨论】:

    • 谢谢伙计。有同样的问题,你的解决方案效果很好!就我而言,我重命名了其中一个文件只是更改了大小写,而 SVN 无法处理它。
    【解决方案2】:

    您使用的是 Mac 还是 Windows?那些具有不区分大小写的文件系统,当
    当前存在同名但大小写不同的文件。

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

    【讨论】:

      【解决方案3】:

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

      祝你好运

      【讨论】:

      • 感谢您的回复,是的,我有权限。很遗憾,这一次不是问题。我已经把我的修复放在下面,我确信有(或应该有)更好的解决方案。但目前一切正常。
      【解决方案4】:

      似乎某处有些地方弄糊涂了。为了解决这个问题,我只是复制了有问题的文件,并以新名称保存它们。从项目中删除了原始文件,并将文件的复制(重命名)版本添加到项目中。

      如果添加和删除同名文件,SVN似乎不喜欢它。我尝试通过终端清理 SVN,但对这个问题没有影响。但是改名确实对我有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-20
        • 2015-10-25
        • 1970-01-01
        • 1970-01-01
        • 2020-08-07
        • 2021-12-26
        相关资源
        最近更新 更多