Wie man Git Repositories über 2 Server synchronisiert

9

Ich suche nach einer Möglichkeit, Git-Repositories automatisch auf (2) Server zu synchronisieren, so dass sie von einem dritten Punkt aus austauschbar sind.

Die Situation ist wie folgt: Wir verwenden git für all unsere Projekte, und einige der Repositories wachsen ziemlich schnell. Momentan haben wir einen zentralen Server und alle schieben / ziehen zu / von diesem. Allerdings geht das alles über die Internetverbindung und ist daher nicht der schnellste Weg.

Die Idee: Setzen Sie einen anderen Server in das Büro und haben Sie alle git-Repositories für die In-Office-Nutzung. Dieser Server müsste mit dem Online-Server synchronisiert werden. Im besten Fall würden die Benutzer nicht einmal wissen, welche sie über eine DNS-Anpassung verwenden, so dass die Adresse der Online-Server-Repositories in das Büro aufgelöst wird, wenn sie mit dem Netzwerk dort verbunden ist.

Macht jemand da draußen schon was ähnliches? Oder gibt es einen einfacheren Weg, um das Ziel zu erreichen?

    
maxigs 26.11.2010, 10:38
quelle

2 Antworten

4

Ich würde einen solchen Mechanismus leicht mit dem SSH-Protokoll sehen (was ein Framework wie gitolite ist sowohl im LAN-Repo als auch im WAN-http-Repo vorhanden, weil Sie dann einfach das ssh erzwungener Befehl Mechanismus zu:

  • überprüfen Sie zuerst, ob die beiden Repos synchron sind
  • lehne den Befehl ab, wenn der lokale Repo weniger aktuell ist als der entfernte
  • Synchronisieren Sie das lokale Repo mit dem Remote-Repository des benötigten

Dies zu tun mit hooks ist komplizierter und müsste vorsichtig sein Setup für jede Art von serverseitigen Hooks, um diesen Synchronisationsmechanismus jederzeit aufrecht zu erhalten.

    
VonC 26.11.2010 12:43
quelle
0

Gitolit hat eine Funktion, die Repositories spiegelt. Du könntest den einen im Büro als den Master und den Online als den Slave einrichten und erlauben, zu einem der beiden zu drücken.

    
AsherMaximum 15.06.2012 14:37
quelle