2010-11-26 97 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有一個將鏡像存儲庫的功能。你可以在辦公室設置一個作爲主人,在線人作爲奴隸,並允許推送到任一人。