Есть две компании. У каждой запущен сервер Git. Если компания A регистрирует какой-то код, он должен быть обновлен на сервере компании B и наоборот.
Оба сервера должны быть синхронизированы друг с другом.
Серверная ОС: Ubuntu Server 14.04
GIT: Gitlab
Какое решение было бы уместным в нашем случае (зеркалирование, хуки,..)?
решение1
Я создал инструмент для синхронизации на уровне Git-репозиториев и делегирования всего проектным группам.
Мой инструмент —git-repo-синхронизация.
Он автоматически синхронизирует два удаленных репозитория Git. Но можно настроить столько пар синхронизации, сколько нужно.
Я считаю, что серверы не могут быть синхронизированы в "Git-порядке вещей".
Даже GitLab предлагает свойзеркалированиена уровне репозитория.
Технически зеркалирование возможно и на уровне сервера, но это будет односторонняя синхронизация.
Люди чаще хотят вносить изменения из обеих компаний, а зеркалирование этого не позволяет.
Всегда были ограничения зеркалирования, за исключением случаев, когда оно используется для резервного копирования.
Представьте, что у вас есть какая-то синхронизация серверов.
Далее вы попросите свои стороны (компании) проверить и повторить свои Git-push и коммиты, потому что они могут исчезнуть во время ночной синхронизации.
Затем вы попросите свои стороны не делать коммиты в одни и те же Git-ветки, чтобы смягчить эти проблемы.
Смягчить, но не устранить.
Я представляю себе способы, как реализовать двунаправленную синхронизацию на уровне Gitlab или Bitbucket.
Я просто решил не реализовывать это в своем инструменте, потому что это будет немного сложно.
В моем случае у меня много серверов Git, а не только Gitlab или Bitbucket.
Есть много других причин, по которым я не могу согласиться на синхронизацию серверов или Git-решений. Но здесь нет места, где я мог бы поделиться своей болью. :)


