6

我们已经在办公室使用 DIY SVN 服务器大约一年了。这是在家庭服务器上安装 SVN 的简单设置。我们使用 tortoise SVN 来访问它我只是希望我在几年前了解版本控制系统。无论如何,在办公室的 1Gbps LAN 上访问服务器当然是完美的,但在外面它可用但很差,受到限制我们的 ADSL 线路到网络的上传速度为 50k 字节/秒。我想这可能会随着“无限”而有所改善,但我们可能会等死。

我想托管一个“并行”存储库,我意识到我应该为此付费,访问速度要快得多。这也将为我们提供额外的备份。我的回购不到 40G,所以 100G 的限制就可以了。有没有办法做到这一点并使两者成为镜像,以便几乎立即在两者上都可以看到提交(至少很小)?我已经在使用 Svnbackup 命令在我们的服务器上创建一个并行镜像,所以这可以双向工作吗?

任何建议或替代方案表示赞赏。

TIA 布赖恩

4

3 回答 3

2

您想要一个只读服务器,还是对多个服务器的读写访问权限?当你只需要一个只读镜像时,你可以使用 svnsync 将你的办公服务器复制到一个镜像服务器上。

当你想从不同的地方提交时,看看像 hg+hgsubversion 或 git-svn 这样的分布式工具,它们都可以用作 svn 的异步客户端。

于 2011-02-05T09:58:08.460 回答
1

我认为你真正需要的是一个从代理——这是一个用于只读访问的颠覆服务器的副本,当你写(向它)时,提交会直接传递给主服务器。当您阅读多于写作时,这提供了一种简单而有效的方式来实现您想要的。

网上有很多教程,但它们都要求您使用 http 访问(不是 svnserve)运行颠覆。从站通过出色的 svnsync 和提交后挂钩保持最新。

于 2011-02-26T01:49:30.390 回答
0

标准的 Linux SVN 服务器具有允许您在事件上运行自己的脚本的钩子。您可以使用 post-commit 挂钩(只需在“hooks”目录中放置一个名为“post-commit”的脚本)。

现在,您可以只发布整个存储库的热拷贝,这很容易设置 ( svnadmin hotcopy from to),然后使用 ssh 或类似方法将存储库复制到 Internet 上的其他主机。你可以在两台机器上这样做,你很好。

缺点:

  • 如果您的存储库很大,那么这需要很多时间
  • 请注意有人同时提交到一个存储库而其他人同时提交到另一个存储库的可能性。这很可能会破坏一切。您必须确保不会发生这种情况或找到锁定存储库的方法(例如在复制过程中关闭 svn)
  • 您需要对两台机器的 shell 访问权限

您可以通过将存储库保存到本地文件并仅将差异传输到另一台计算机来加快速度。

于 2011-02-05T10:01:59.513 回答