Как синхронизировать 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) достаточно простого перехвата после получения.

Другие вопросы по тегам