Как синхронизировать 2 голых репозитория в Gitolite?
У меня есть следующее требование: два удаленных чистых репозитория A и репозиторий B, и моя цель - синхронизировать или передать repoA
содержание к repoB
@регулярные отрезки.
Я использую Gitolite v3, кстати, я должен пойти на зеркалирование Gitolite или пост-получение хуков? если это пост-получить, как этого добиться?
1 ответ
Конечно, добавление хука после получения (см. " (V3.6+) вариант: репо-специфические хуки") - самый простой способ.
cd /path/to/your/gitolite-admin-clone
mkdir -p local/hooks/repoA
git push --mirror ../repoB
Зеркалирование в основном для синхронизации между различными серверами Gitolite (я полагаю, оно может быть настроено для зеркалирования на том же сервере, как t/mirror-test
, но это немного излишне).
Плюс это добавляет:
Начиная с версии 3.5.3, gitolite используетасинхронный push для подчиненных, так что основной push возвращается немедленно, не дожидаясь завершения подчиненных push- уведомлений.
Имейте это в виду, если вы пишете сценарии, которые делают толчок, а затем сразу же читаете одного из рабов - вам нужно будет добавить несколько секунд сна в ваш сценарий.
Это означает:
Если вам нужно обслуживать несколько серверов gitolite, то зеркалирование интересно, главным образом потому, что push --mirror
делается асинхронно от начального git push
репо.
В этом аспекте зеркальное отображение гитолита происходит быстрее, потому что вы нажимаете на А, а на заднем плане гитолит будет push --mirror
на другие серверы Gitolite.
Но здесь, для всего лишь одного репо (на том же сервере gitolite или на другом сервере gitolite) достаточно простого перехвата после получения.