2

我正在设置一个 SVN 镜像,并按顺序执行以下步骤:

  1. 创建的存储库
  2. 从主存储库加载转储到镜像
  3. 设置挂钩脚本
  4. 试过了svnsync synchronize destination source

但是我在最后一步得到了错误:

svnsync:目标存储库尚未初始化

我应该svnsync initialize在创建存储库后运行,但我错过了。现在,根据svnsync命令,在初始化之前我无法同步,但我无法初始化,因为我已经提交了修订。

我唯一的选择是从头开始并遵循正确的步骤顺序,但这很耗时,因为我必须在镜像中加载 200 000 多个修订。

是否有解决该问题的方法?

4

2 回答 2

1

您可以使用选项“--allow-non-empty”(至少从 svn 1.7 开始)

svnsync initialize dest source --allow-non-empty

但是目标的所有提交都应该在源中(如果源中有更多提交也没关系,它们将在您第一次“同步”时同步)。

于 2016-03-29T14:24:18.113 回答
0

另一种方法是使用干净的备份存储库开始同步,然后停止它并将转储复制到顶部。控制同步的信息存储在 revision/revprop 0 中。在复制转储之前和之后查看它,您将能够手动更新它。它有点hack,但很简单。您需要相应地更改最后更新的修订号,否则它将尝试同步所有修订。

于 2013-09-10T07:21:51.980 回答