1

我们有几个站点,并且正在使用一个集中的 Subversion 存储库。

存储库很大,网络带宽意味着在站点之间获取资源需要几个小时。

你会建议什么?一种选择是开始使用 Git,但它可能非常昂贵。在主站点仍然有一个中央 SVN 存储库并在小站点安装 git 然后我们可以使用 git-svn 管道怎么样?

4

3 回答 3

2
  1. 确保您使用的是 1.7+ 版本的 Subversion 服务器和客户端。1.7 版引入了某些性能改进,特别是对于 http(s):// 协议。

  2. git-svn使用标准的 SVN 协议,因此它不会修复与 Subversion 服务器通信的速度。

    但是,由于大多数 Git 操作都是本地操作,因此用户必须很少与服务器交互。基本上,在这种情况下只有两个慢命令:git svn dcommitgit svn fetch.

  3. 考虑将SubGit用于您的 SVN 存储库。SubGit 在 SVN 和 Git 存储库之间执行服务器端同步,SVN 和 Git 端都保持可写。

    安装 SubGit设置 Git 服务器后,您可以使用纯 Git 来拉取和推送更改;在每个git pushSubGit 上将提交转换为 SVN 修订,并在每次svn commit将提交的修订转换为 Git 提交。

    请注意,在这种情况下,您使用的是 Git 协议,这可能会显着提高速度。

    有关 SubGit 的更多详细信息,请参阅文档与 git-svn 进行比较

    免责声明:SubGit 是商业软件;我是 SubGit 开发人员之一。

于 2013-02-20T20:02:17.517 回答
0

您可以尝试使用 VisualSVN Server 进行多站点存储库复制。

多站点存储库复制允许您在主站点上设置主存储库,并在其他远程位置安装多个从存储库。从属和主控之间的双向数据复制是透明和自动的,每个从属和主控都是可写的,从客户端的角度来看,它们充当常规的 Subversion 存储库。

于 2014-09-16T10:36:51.670 回答
-1

如果您想坚持使用纯粹的 Subversion 工具链,请考虑执行以下操作:

您最终会得到一个位于中心位置的主存储库,以及位于每个站点的只读镜像副本。这些站点的用户将从他们的本地镜像中签出。

然后,您使用直写代理配置这些镜像,这会将提交推送回主存储库。

每次提交后,存储库会使用svnsync该版本将该修订推送到镜像。

如果这仍然太慢,您可能需要查看WanDisco SVN MultiSite

于 2013-02-20T21:22:39.240 回答