如何在SVN中修复“包含工作副本管理区缺失”的问题?

186

我在我的代码库中离线手动删除了一个刚刚添加的目录,现在我无法恢复这个目录。

任何尝试进行更新或提交的操作都将失败,并显示:

"blabla/.svn" containing working copy admin area is missing.

我明白原因,但有没有办法解决这个问题。

我不想检出整个代码库并手动添加更改,那将耗费数小时。

21个回答

1
最近我遇到了这个错误,当时我的SVN全局设置中排除了这些文件。这个错误特别讨厌,因为我还直接从仓库中删除了这些文件 - 这意味着上面的解决方案都不起作用。在这种情况下,手动从我从SVN中移除的目录中删除 .svn 目录,然后运行更新,就可以提交了。

1

帮助我最简单的方法:

rm -rf _dir_in_question_
svn up

如果您在有问题的目录中进行了更改,则这不是一个好的解决方案。

1

我曾遇到过这个问题。只需将blabla文件暂时移动到另一个位置,告诉svn进行还原,然后再将其移回原位。它会被视为新添加的文件。简单易行!


1

从你的帖子中没有理解太多。

  1. 剪切有问题的文件夹并复制到其他位置。
  2. 从Subversion获取解决方案到另一个工作目录(只是新的一个)。
  3. 将保存的文件夹添加到新的工作副本中,并将其添加为现有项目(如果像我一样是项目)。
  4. 提交;

1

我最近遇到了这个错误。它是由于根用户拥有目录中的一些文件而导致的。

在我更改了权限之后,一切都按预期工作了。


1

我在将第三方API库替换为新版本时遇到了这个问题,这里的解决方案都不适用于我,因为我想要用本地版本来替换SVN版本。我的解决方案如下:

1)将有问题的文件夹移动到我的主目录下,从SVN中删除并提交:

mv foldercausingproblem ~/
svn --force delete foldercausingproblem
svn commit --message "Temporary removing folder with old API"

2)将文件夹放回原处,将其添加到SVN并再次提交:

mv ~/foldercausingproblem ./
svn --force add .
svn commit --message "Finally all working!"

需要提交两次有点烦人,但似乎已经成功了。


我通常喜欢将代码与我的工作副本分开处理(IDE、编译器、错误解析器等不喜欢 .svn,而且在 Eclipse 中没有“每个人忽略 .SVN 除了 SVN!”的命令)。这意味着对于我来说,基本的 SVN 提交过程是:1. 检出工作副本的 repo 2. 删除我要更新的项目的根目录 3. 将更新后的项目目录复制并粘贴到工作副本中项目的父目录中 4. svn add --force <projname> 5. 提交。这通常有效,但有时会出现 OP 的错误。Jamie Brown 的修复方法在我的情况下起作用。 - CCJ

0

我在尝试将一个目录添加到svn时遇到了这个问题。我通过进入仓库浏览器来解决它。在左窗口中右键单击,选择添加文件夹并直接在仓库浏览器中添加目录。

然后我在本地删除了该目录(当然是在备份之后),进行了清理和svn更新,一切都正常工作了。


我可能要补充一下,这将被添加到我的“svn很烂”文件中。 - Speck

0
我经常遇到的一个常见任务是将一个在staging环境下的repo目录复制到另一个repo中 - 这两个repo都在SVN下,且名称相同。对我有效的方法如下所示:
svn --force delete PROBLEMATIC-DIR
svn export "https://OLD REPO-A/ new-repo-A"
svn add new-repo-A
svn commit new-repo-A

0

以防有人想要另一种解决方案:

  1. 将您的新文件夹作为“foldername2”检入
  2. 进入Tortise SVN仓库浏览器
  3. 将“foldername2”重命名为“foldername”
  4. 在Windows资源管理器中进行更新

希望对某些人有所帮助。

-Ev


0
首先,将项目检出到一个文件夹中。然后,从冲突的项目中删除 .svn 文件夹,并从新的检出文件夹中复制 .svn 文件夹并粘贴到您的工作副本文件夹中。这样问题就解决了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接