管理跨站点的源

时间:2013-02-19 08:26:34

标签: git svn version-control git-svn

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

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

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

3 个答案:

答案 0 :(得分:3)

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

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

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

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

    一旦你installed SubGitsetup Git server,就可以使用纯Git来拉动和推动变化;在每个git push SubGit上转换提交到SVN修订版,并在每个svn commit上将提交的修订转换为Git提交。

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

    有关SubGit的详细信息,请参阅documentationcomparison with git-svn

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

答案 1 :(得分:0)

如果您想坚持使用纯粹的Subversion工具链,请查看以下内容:

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

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

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

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

答案 2 :(得分:0)

您可以使用VisualSVN Server尝试Multisite Repository Replication

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