SVN 存储库中缺少修订

Posted

技术标签:

【中文标题】SVN 存储库中缺少修订【英文标题】:Missing revision in SVN repository 【发布时间】:2011-11-29 16:18:16 【问题描述】:

显然其中一个旧版本已从 svn 存储库中消失:

svn checkout http... myrepo
svn: REPORT of '/svn/myrepo/!svn/vcc/default': Could not read chunk size: connection was closed by server (http://localhost)

$ svnadmin verify myrepo
* Verified revision 0.
...
svnadmin: No such revision 262

$ svn log -v -r 262
svn: No such revision 262

$ ll /var/SVN/myrepo/db/revs/0/
...
-rw-r--r-- 1 www-data www-data  27289777 2010-10-21 22:21 260
-rw-r--r-- 1 www-data www-data   4727180 2010-11-12 18:51 261
-rw-r--r-- 1 www-data www-data   2180586 2010-11-14 20:33 263
...

在这个问题上搜索说“从备份恢复”,但我所有的 3 个备份都有这个缺失的修订版,所以它一定已经有一段时间了。我只有在无法提交特定文件时才注意到它。我有一个当前的工作副本。除了从头开始我还能做什么?!?

【问题讨论】:

【参考方案1】:

您有权访问原始存储库吗?您可以通过进入存储库文件夹来验证是否缺少修订,然后在 db 文件夹下,您将看到一系列文件夹。对于 rev 262,它将位于文件夹“0”中,其中包含 0-999 的所有修订。可以小心地从存储库中删除修订。当一个或多个文件被提交时,我们已经这样做了,无论出于何种原因,它都不应该成为 repo 的一部分。您可以使用 svn 命令删除它们,但仍然可以通过指定修订来检索它们。有没有可能有人做过这样的手术?

注意事项 - 即使您知道自己在做什么,在存储库中弄脏也会导致问题?您可能需要在调查之前制作一份 repo 的副本,以防万一出现问题。

【讨论】:

感谢您的回答。我是该存储库(个人项目)的唯一用户,是的,我拥有完全访问权限,并且正如我所指出的,缺少 db/revs/0/262。 问题解决了吗?我有同样的问题:(

以上是关于SVN 存储库中缺少修订的主要内容,如果未能解决你的问题,请参考以下文章

当我在存储库中丢失一些修订时,如何转储所有 svn 数据?

如何 git-svn 从 Subversion 存储库克隆最后 n 个修订?

减少 SVN 存储库大小

svnadmin 加载但保留修订号

如何将缺少的 svn:author 批量添加到存储库或转储中?

svn diff 获取完整文件?