如何修复svn:';path/to/dir';不是工作副本目录

如何修复svn:';path/to/dir';不是工作副本目录,svn,Svn,我试图做一个提交,我得到上面的错误。我在这里看到了一些类似的问题,但解决方案似乎总是“删除并重新签出”。我第一次尝试添加一些文件,因此无法删除。我还尝试删除这些文件,但后来出现了以下错误: svn: Directory '/path/to/dir' is missing 我认为问题最初源于权限错误——当我执行最初的add命令时,我没有写入.svn文件的权限。我怎样才能解决这个问题?我唯一想到的是从项目中清除所有.svn文件夹,然后重新导入到新的存储库中。哎呀 我的最佳猜测是,您需要在目录层次结

我试图做一个提交,我得到上面的错误。我在这里看到了一些类似的问题,但解决方案似乎总是“删除并重新签出”。我第一次尝试添加一些文件,因此无法删除。我还尝试删除这些文件,但后来出现了以下错误:

svn: Directory '/path/to/dir' is missing

我认为问题最初源于权限错误——当我执行最初的add命令时,我没有写入.svn文件的权限。我怎样才能解决这个问题?我唯一想到的是从项目中清除所有.svn文件夹,然后重新导入到新的存储库中。哎呀

我的最佳猜测是,您需要在目录层次结构中提升一个级别,然后从那里添加目录和文件,然后从那里提交。

尝试以当前用户的身份重新拥有所有文件
.svn
文件应由执行提交的任何用户拥有。如果您可以以root用户身份提交,这将是一个很好的指标,表明您有此问题。但不要这样做,因为您将使subversion文件归root所有,这意味着您的用户将无法提交。请正确设置所有者,然后重试

如果您确实检查了该项目,并且现在得到了该错误,则表明SVN不相信您进行了有效的回购。检查路径,检查权限,检查是否存在
.svn
文件


实际上,解决此问题最可靠的方法是将已编辑的文件复制到其他地方,擦除签出到的目录,然后重新签出。如果您尚未在回购协议中签入任何内容,请使用
svn import
命令。

如果没有完整的上下文,这个问题很难回答,但我会尝试一下

我几次被迫做的是:

  • 查看备份我的WC的新副本
  • 删除我的WC中的所有.svn目录
  • 用我的WC文件覆盖(1)中的新副本
  • 承诺
  • 其他技术包括(当然,备份后) 还原WC,然后将编辑的文件放入。 更新(在您的情况下可能不起作用)

    这是相当尴尬的,如果有更好的方法,我也会非常有兴趣学习它


    出现此问题的原因似乎是删除/添加的文件的修订顺序错误。

    在进行/添加更改之前,您可以尝试svn revert-R以首先回滚到上一版本。完成后,您可以从文件夹结构的最顶层再次运行svn add(我假设您能够在没有权限问题的情况下完成这项工作)。 在命令行客户机中,当您运行恢复时,您将取消这些文件的“a”状态(假设这些文件是您在提交过程中遇到麻烦的文件)。因此,现在这些文件“不在版本控制范围内”,尽管仍然在您的工作区中


    现在,您可以将它们移出并分阶段添加回来(现在您有了正确的权限,应该可以正常工作了)。但我不知道您总共有多少文件,因此这可能不会有一点混乱。

    FWIW,我最后使用了以下方法:

    find . -name ".svn" -type d -exec rm -rf {} \;
    
    删除所有的.svn文件并重新导入。我没有丢失任何历史记录,真的,所以这看起来很简单


    这里的其他几个答案似乎也是可行的。

    抱歉-之前没有看到您的问题,不,它不应该删除您添加的文件。它应该将状态从“已添加”恢复为“未版本”-但是,如果你像我一样,你宁愿更安全,也不愿后悔,所以我会在复制到其他地方后尝试使用一个文件进行安全保存-就像这样svn恢复“文件名”。或者,也许您现在已经找到了更好的解决方案-因此不要忘记发布您的解决方案。好奇的是,您是否尝试在目录上重新尝试“添加”命令?如果目录本身存在于存储库中,“更新”应将其带回来并保留您的文件…备份它们以备不时之需;-)没有留下答案,因为我没有测试过。