Как синхронизировать несколько репозиториев git, включая теги и ветки? - PullRequest
2 голосов
/ 07 сентября 2011

У меня есть серверы git repo в разных местах по всей стране. Когда я переезжаю в одно из этих мест, я хотел бы использовать локальный сервер для push / pull. Это можно сделать, просто изменив .git / config и изменив исходную ветку. В то же время я хотел бы, чтобы все ветви и теги, отправленные на этот локальный сервер, реплицировались во все репозитории git на других серверах.

Как лучше всего настроить это?

Должен ли я изменить .git / config, чтобы включить удаленное «все», которое имеет URL для каждого сервера? Таким образом, каждый раз, когда я делаю git push all, он будет распространяться на все серверы.

Должен ли я добавить хуки после фиксации к каждому серверу git repo для отправки на другие серверы? Это тогда не требует дополнительной настройки для клиентской стороны, так как им просто нужно отправить на любой из серверов.

А как же git clone --mirror? Поможет ли это достичь эффекта кластеризации?

1 Ответ

2 голосов
/ 07 сентября 2011

Вы должны делать это на стороне сервера, насколько это возможно, чтобы не обременять коммиттера какими-либо накладными расходами.Вы должны быть осторожны с рекурсией с помощью хитов после фиксации.Если все серверы подталкивают все остальные при фиксации, вы можете оказаться в случае, когда все серверы продолжают давить друг на друга.Тем не менее, вы можете использовать это в ваших интересах.Каждому серверу нужно только заботиться о сервере, чтобы он был виртуальным.Например, A -> B -> C -> D -> ... A. Если у каждого сервера есть хук пост-фиксации, чтобы сначала увидеть, обновлен ли следующий сервер, и нажать на него, если нет, нажмите его потомв конечном итоге все серверы будут синхронизированы.Таким образом, сервер A отправляется на B, который передается на C, который передается на D, который проверяет, что A обновлен, и ничего не делает.отправляет сбой на другие серверы, но следующий коммит синхронизирует его.

Вы также можете просто использовать rsync.

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