2010-11-26 121 views
9

我正在寻找一种方法来跨(2)个服务器自动同步Git存储库,以便它们可以从第三个点进行互换。如何跨2台服务器同步Git存储库

情况如下: 我们在所有项目中大量使用git,一些存储库的规模增长速度相当快。目前,我们有一台中央服务器,每个人都在推/拉这个服务器。然而,这一切都通过互联网连接,因此不是最快的方式。

想法: 把另一台服务器放在办公室,并有所有的git仓库在办公室使用。该服务器需要与在线的服务器同步。 最好的情况是,用户甚至不知道他们通过某种DNS调整使用哪一个,所以当连接到网络时,在线服务器存储库的地址解析为内部一个。

有人已经在做类似的东西吗?还是有更简单的方法来完成目标。

+0

办公室外的人需要推送吗? – robert 2010-11-26 11:05:18

+0

是的,如果可能的话,在合理的努力下 – maxigs 2010-11-28 20:51:06

回答

4

我会看到这样与SSH protocol(意为像gitolite一个框架到位无论在LAN回购和WAN HTTP回购)轻松完成一个mechnism,因为这样你可以很容易地扩展SSH forced command机制:

  • 第一检查如果两个回购是等时线
  • 拒绝该命令如果本地回购不太先进的日期比远程一个
  • 与所需
  • 远程一个同步本地回购

要与hooks更为复杂这样做,就需要仔细设置为每一种服务器端的挂钩,以保持这种同步机制了在所有的时间。

0

Gitolite有一个将镜像存储库的功能。你可以在办公室设置一个作为主人,在线人作为奴隶,并允许推送到任一人。