Reputation: 916
I'm looking for a way to automatically synchronize Git repositories across (2) servers so they are interchangeable from a third point.
Situation is as follows: We heavily use git for all our projects, and some of the Repositories grow quite fast in size. Currently we have one central server and everyone is pushing/pulling to/from this one. However this all goes through the internet connection and therefore is not the fastest way.
The Idea: Put another server in the office, and have all the git repositories there for in-office-use. This server would need to be synchronized with the one on-line. At best the users would not even know which one they use via some dns-adjustment, so the address of the on-line server repositories resolves to the in-office-one when connected to the network there.
Is anyone already doing something similar out there? Or is there a easier way to accomplish the target.
Upvotes: 9
Views: 3839
Reputation: 972
Gitolite has a feature that will mirror repositories. You could set up the one in the office as the master, and the online one as the slave, and allow pushing to either one.
Upvotes: 0
Reputation: 1323973
I would see such a mechnism easily done with the SSH protocol (meaning a framework like gitolite is in place both on the LAN repo and the WAN http repo), because then you can easily extend the ssh forced command mechanism to:
To do so with hooks is more complicated and would need to be carefully setup for each kind of server-side hooks in order to keep that synchronization mechanism up at all time.
Upvotes: 4