我正在尝试提交,我收到上面的错误。我在这里看到了几个相同的问题,但解决方案似乎总是“删除并重新结账”。我想第一次添加一些文件,所以我无法删除。我也试过删除文件,但后来我得到了这个错误:
svn: Directory '/path/to/dir' is missing
我认为问题最初源于权限错误 - 当我执行初始添加命令时,我没有权限编写.svn文件。我怎样才能解决这个问题?我唯一想到的就是从项目中清除所有.svn文件夹,然后重新导入到新的存储库中。的Bleh!
答案 0 :(得分:1)
尝试重新拥有所有文件作为当前用户。 .svn
个文件应由提交的任何用户拥有。如果您可以以root身份提交,那么这将是您遇到此问题的一个很好的指标。不要这样做,因为你将使你的subversion文件由root拥有,这意味着你的用户将无法提交。正确设置所有者,然后重试。
如果您确实检查了项目,并且现在正在收到该错误,则表明SVN不相信您处于有效的回购中。检查您的路径,检查您的权限,检查.svn
文件的实际存在。
真的,解决这个问题最明智的方法是将编辑好的文件复制到其他地方,擦除你签出的目录,然后重新签出。如果尚未检查任何内容,请使用svn import
命令。
答案 1 :(得分:1)
如果没有完整的背景,这个问题很难回答,但我会试一试。
我被迫做了几次是这样的:
其他技术(当然是备份之后) 恢复WC,然后将编辑过的文件放入。 更新(在您的情况下可能不起作用)
这很尴尬,如果有更好的方式,我也会非常有兴趣去学习它。
由于删除/添加的文件的修订顺序错误,似乎出现了问题。
答案 2 :(得分:0)
我最好的猜测是你需要在目录层次结构中升级,然后从那里添加目录和文件,然后从那里提交。
答案 3 :(得分:0)
在进行/添加更改之前,您可以尝试使用svn revert -R首先回滚到上一版本。完成后,您可以从文件夹结构的最顶层再次运行svn add(我假设您可以在没有权限问题的情况下执行此操作。 在命令行客户端中,当您运行恢复时,您将从这些文件中取消“A”状态(假设那些让您对提交感到悲伤的状态)。所以现在这些文件“在版本控制之外”,尽管仍在您的工作区中。
您现在可以将它们移出并分阶段添加(现在您拥有正确的权限,它应该可以正常工作)。但我不知道你有多少文件,所以这可能不会有点混乱。
答案 4 :(得分:0)
FWIW,我结束了这个:
find . -name ".svn" -type d -exec rm -rf {} \;
删除所有.svn文件并重新导入。我没有失去任何历史,真的,所以这看起来最简单......
这里的其他几个答案似乎也是可行的。