0

大家好,我希望你们今天过得愉快!

我有一个小问题,我一直在寻找解决方案无济于事。也许这里有人可以帮助我?问题是这样的:

我正在使用我编写的脚本,该脚本循环遍历所有文件夹并将存储库的热复制到网络位置。除了一个 repo 之外,所有工作都非常好,该 repo 失败并出现以下错误:

svnadmin: Can't open file 'E:\repositories\20100831_repository_xyz\db\revs\0\235': 系统找不到指定的文件。
无法备份存储库。<==错误段完成==!>

我不介意丢失修订版,但我显然无法导出和导入(丢失所有修订版)。另外,我真的需要修复它,因为它破坏了我的夜间备份!500gb 在 4 周内使用...

有人有可行的解决方案吗?

4

1 回答 1

2

首先你最好使用svnadmin dump它,因为它会将每个 repo 与它的元数据打包在一起——修订、chagnes、用户等。你的“down-and-dirty”方法是有风险的,因为有可能丢失一些文件同时通过网络传输它们。然后,您可以通过 Intranet、Internet 或其他任何方式安全地传输所有存储库,并将它们加载到另一个 SVN 实例中,或者只保留文件。

这是命令的工作方式:

svnadmin dump REPOSITORY_NAME > out_file.dump

我使用的是一个 cronjob,它使用 扫描我的 svn_root 目录ls -1,这是所有根 Repo 目录所在的位置,对于所有目录(./ 和 ../ 除外)获取它们的名称并在每个目录上执行存储库转储。完成后,我通过 ssh 将文件安全地移动到另一台服务器。

还有一件事——如果你想拥有另一台正在工作的服务器(作为从属服务器/镜像服务器)并且是最新的,你可以使用存储库挂钩将它与主服务器同步。如果您希望我对此进行解释,请对此发表评论。这一点都不难。

于 2012-07-16T21:23:32.200 回答