2010-11-26 2 views
9

Я ищу способ автоматической синхронизации хранилищ Git через (2) серверы, чтобы они были взаимозаменяемыми с третьей точки.Как синхронизировать репозитории Git на 2 серверах

Ситуация такова: Мы используем git для всех наших проектов, а некоторые из Хранилищ растут довольно быстро. В настоящее время у нас есть один центральный сервер, и каждый нажимает/тянет к нему/от него. Однако все это проходит через интернет-соединение и, следовательно, не самый быстрый способ.

Идея: Поместите другой сервер в офис и сохраните все хранилища git для использования в офисе. Этот сервер должен быть синхронизирован с одним он-лайн. В лучшем случае пользователи даже не узнают, какой из них они используют, используя некоторую настройку dns, поэтому адрес репозиториев онлайнового сервера разрешает работу внутри офиса при подключении к сети.

Кто-нибудь уже делает что-то похожее там? Или есть более простой способ достичь цели.

+0

Должны ли люди, находящиеся за пределами офиса, проталкивать? – robert 2010-11-26 11:05:18

+0

Да, если это возможно в разумных пределах – maxigs 2010-11-28 20:51:06

ответ

4

я хотел бы видеть такую ​​mechnism легко сделать с SSH protocol (означающего рамки как gitolite на месте как на репо LAN и HTTP репо WAN), потому что тогда вы можете легко расширить SSH-forced command механизм для:

  • первого чек, если два репо Synchrone
  • отклонить команду, если локальный репо меньше уточненный чем удаленный одной
  • синхронизации локального репо с удаленным из необходимости

Чтобы сделать это с hooks является более сложным, и необходимо будет тщательно настроить для каждого вида на стороне сервера крючки для того, чтобы сохранить этот механизм синхронизации до в любое время.

0

Gitolite имеет функцию, которая будет зеркально отражать репозитории. Вы можете настроить тот, который находится в офисе, как ведущий, а онлайн - как подчиненный, и разрешить нажатие любой из них.

Смежные вопросы