从 BDB SVN 存储库中恢复源代码

Posted

技术标签:

【中文标题】从 BDB SVN 存储库中恢复源代码【英文标题】:Recover source code from BDB SVN Repository 【发布时间】:2019-10-02 21:45:11 【问题描述】:

我正在尝试从我不再拥有远程存储库的 SVN 备份中恢复源代码。这是一个旧项目,它使用 BDB 作为 SVN 客户端不再支持的数据库。

此备份中的文件是:

db/
hooks/
locks/
format
README.txt

到目前为止我已经尝试过:

    使用来自svnadmin的recover命令

    使用 svn 1.8(仍然支持创建 BDB 存储库)创建新存储库并复制 db/ 文件夹。 db/ 文件夹的结构与较新的版本有本质的不同,我备份中的那个有修订和事务作为文件夹,而不是文件。

    从 svn 1.6(来自 apache archives)下载源代码并从头开始编译。由于许多过时的依赖项,我无法编译。

一些附加信息:

我正在使用 Linux 来执行此操作,但我也在 Windows 和 Mac 中尝试过

我目前安装的svn版本是1.8

我无法访问原始服务器,我有一个备份 zip 文件

这是db文件夹的内容:

revprops/
revs/
transactions/
txn-protorevs/
__db.001
__db.002
__db.003
DB_CONFIG
__db.register
log.0000000001
nodes
txn-current
txn-current-lock
uuid
write-lock

我被困在这个问题上,我不知道我还能尝试从这个存储库中提取源代码。

【问题讨论】:

【参考方案1】:
    This manual 的迁移可能会有所帮助 正如我在Apache Subversion 1.8 Release Notes 中看到的(现在)

Subversion 开发人员已决定弃用该存储库 基于 Berkeley DB 的后端。 …这意味着什么:用户做 不必立即将其存储库迁移到 FSFS。发展局 后端将继续工作,并将获得尽可能多的测试覆盖率 一直到现在。

即您可以按照 Collab 文档中的建议,拥有带有 BDB 后端的存储库并使用它执行所有常规管理操作 - 创建转储并将其加载到具有 FSFS 后端的新存储库中。如果您的数据库在recover 之后没有损坏,那么转储|加载技巧必须得到预期的结果

【讨论】:

recoverdump 产生相同的错误:svnadmin: E000002: Can't open file 'db/DB_CONFIG': No such file or directory 嘿 Frederico,你解决了吗?我在恢复 repo 时遇到了同样的错误。 我正在尝试svnadmin dump my_repo 并得到svnadmin: E160033: Failed to load module for FS type 'bdb'

以上是关于从 BDB SVN 存储库中恢复源代码的主要内容,如果未能解决你的问题,请参考以下文章

在 SVN 存储库中搜索 office 文档的工具

SVN(版本控制系统)是个啥东西?

将代码从 svn 迁移到 google 代码

从 SVN 恢复已删除文件的正确方法是啥?

Xcode build 文件夹出现在 svn

从 SVN 存储库中删除文件而不删除本地副本