创建 SVN 镜像的最佳方式?

roe*_*erj 8 svn

我目前正在研究设置 SVN 镜像的最佳方法。我目前看到三种可能性都有自己的缺点:

  • 有一个通过 svnsync 阻塞和同步的 SVN post-commit-Hook。这里的问题很明显,在数据传输到镜像之前,提交是阻塞的。
  • 有一个非阻塞和通过 svnsync 同步的 SVN post-commit-Hook。在这里,我看到了以下更微妙的问题:想象一下有人签入了一个大文件,不久之后还有其他人签入了一个小文件。因为提交是非阻塞的,所以两个 svnsync 进程可以同时运行,小文件可以在通往镜像的途中超过大文件(这看起来非常时间紧迫且不太可能,尽管原则上是可能的)。他们的修订将互换。
  • 每十五分钟同步一次定时任务。如果提交时间超过 15 分钟,并且显然是时间延迟,那么同样的问题。

我忘记了一种可能性吗?我做错了什么吗?有任何想法吗?已经谢谢了!

也许我应该注意第二种可能性是不同网站建议的一种。例如见 http://www.kirkdesigns.co.uk/mirror-svn-repository-svnsync

Dav*_*ney 3

您可以尝试一种类似于我们在 Atlassian 使用的方法

https://www.atlassian.com/blog/archives/subversion_replication_at_atla?_ga=2.217251286.1933127788.1517539727-1159165484.1517539727

免责声明:我目前是 Atlassian 员工,但没有参与实施此解决方案(仅维护它)

正如我在上面的评论中所说,svnsync,从远程存储库运行的行为是确定的。它不能无序地应用变更集。因此,使用远程存储库时遇到的唯一问题是由于变更集传播而导致的滞后量。