我正在设置SVN镜像,并按顺序执行以下步骤:
- 创建的存储库
- 从主存储库加载转储到镜像
- 安装挂钩脚本
- 试过
svnsync synchronize destination source
但是我在最后一步遇到了错误:
svnsync:目标存储库尚未初始化
我应该在存储库创建后运行svnsync initialize
但我错过了它。现在,根据 svnsync
命令,在初始化之前我无法同步,但我无法初始化,因为我已经提交了修订。
我唯一的选择是从头开始并遵循正确的步骤顺序,但这很耗时,因为我必须在镜像中加载 200 000+ 修订版。
有解决问题的方法吗?
您可以使用选项"--allow-non-empty"(至少从SVN 1.7开始)
svnsync initialize dest source --allow-non-empty
但是,目标的所有提交都应该在源代码中(如果源中有更多提交没关系,它们将在您第一次执行"同步"时同步)。
另一种方法是使用干净的备份存储库启动同步,然后停止它并将转储复制到顶部。控制同步的信息存储在修订版/修订版 0 中。在复制转储之前和之后查看它,您将能够手动更新它。这有点黑客,但它很简单。您需要相应地更改上次更新的修订版本号,否则它将尝试同步所有修订版。