Sincronizando dois servidores Git entre empresas

Sincronizando dois servidores Git entre empresas

Existem duas empresas. Cada um possui um servidor Git em execução. Se a empresa A fizer check-in de algum código, ele deverá ser atualizado no servidor da empresa B e vice-versa.

Os dois servidores devem manter-se sincronizados entre si.

SO do servidor: Ubuntu Server 14.04

GIT: Gitlab

Qual solução seria apropriada no nosso caso (espelhamento, ganchos, ..)?

Responder1

Criei uma ferramenta para sincronizar em nível de repositórios Git e delegar tudo às equipes de projeto.
Minha ferramenta égit-repo-sync.
Ele sincroniza automaticamente dois repositórios Git remotos. Mas é possível configurar quantos pares de sincronização forem necessários.

Acredito que os servidores não poderiam ser sincronizados na "ordem das coisas do Git".
Até o GitLab propõe seuespelhamentoem nível de repositório.

Tecnicamente, o espelhamento também é possível no nível do servidor, mas será uma sincronização unilateral.
É mais frequente que as pessoas queiram fazer alterações em ambas as empresas e o espelhamento não permite isso.
Sempre houve limitações com o espelhamento, exceto se ele fosse usado para backup.

Imagine que você tenha alguma sincronização de servidor.
Em seguida, você pedirá aos seus lados (empresas) que verifiquem e repitam seus push e commits do Git, pois eles podem desaparecer durante uma sincronização noturna.
Então você pedirá aos seus lados que não se comprometam com os mesmos ramos do Git para mitigar esses problemas.
Para mitigar, mas não eliminar.

Imagino maneiras de implementar alguma sincronização bidirecional no nível do Gitlab ou Bitbucket.
Só decidi não implementar isso na minha ferramenta porque será um pouco complicado.

No meu caso, tenho muitos servidores Git e não apenas Gitlab ou Bitbucket.
Existem muitos outros motivos pelos quais não posso concordar em sincronizar servidores ou soluções Git. Mas aqui não há lugar para partilhar a minha dor. :)

informação relacionada