Как синхронизировать Git-репозитории на 2 серверах - PullRequest
9 голосов
/ 26 ноября 2010

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

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

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

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

Ответы [ 2 ]

4 голосов
/ 26 ноября 2010

Я бы увидел, что такой механизм легко реализовать с помощью протокола SSH (что означает, что такая структура, как gitolite , существует как в репозитории LAN, так и в репозитории WAN http), потому Вы можете легко расширить механизм принудительной команды ssh до:

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

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

0 голосов
/ 15 июня 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...