![Синхронизация двух Git-серверов между компаниями](https://rvso.com/image/1414660/%D0%A1%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B4%D0%B2%D1%83%D1%85%20Git-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%BE%D0%B2%20%D0%BC%D0%B5%D0%B6%D0%B4%D1%83%20%D0%BA%D0%BE%D0%BC%D0%BF%D0%B0%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8.png)
Есть две компании. У каждой запущен сервер 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-решений. Но здесь нет места, где я мог бы поделиться своей болью. :)