¿Cómo debería el otro sitio remoto usar el server gerrit basado en un repository espejo?

Hay dos sitios de desarrollo en mi empresa para cooperar en el desarrollo de SW para el cliente, y mi trabajo consiste en recostackr soluciones de ambos sitios para hacer el lanzamiento del proveedor de nuestra empresa y entregarlo al centro de distribución de clientes. (el centro de lanzamiento de clientes que usaba otro server git en el sitio C, y además de mí, había CM de otras compañías que proporcionarían un lanzamiento de proveedor similar al centro de lanzamiento de clientes para su lanzamiento).

Después de autoestudio, ahora que había creado el sistema gerrit / git en el sitio A con éxito, el desarrollador en el sitio A podía usar gerrit para clonar cambios de código / revisión sin problema, pero el desarrollador del sitio B se queja del sitio gerrit. Un performance no es aceptable para ellos, el clon / push / pull toma varias horas, no es posible hacer el trabajo diario.

Así que sugirieron configurar una especie de mirror git repo en el Sitio B, luego podrían clonar el código del server espejo de manera más efectiva, y mientras tanto los desarrolladores en el sitio B también necesitarían usar Gerrit en el sitio A para hacer la revisión del código, porque necesito recopile todos los cambios A / B del sitio de la twig code_develop en el sitio A, luego realice un lanzamiento de proveedor de la compañía y acceda al sitio C, donde el cliente realiza la publicación principal del producto.

A continuación, hay problemas que no estoy seguro de cómo hacer:

  1. cómo crear el espejo git repo en el sitio B?
    ¿Está todo simplemente usando el command "git clone –mirror siteA_admin @ siteA_IP: 29418 / product_code" en el server en el sitio B?

  2. Después de crear la twig espejo del sitio B, ¿cuál es la mejor forma efectiva de mantener la actualización entre el repository gerrit del sitio A y el repository espejo en el sitio B? ¿Usando un gancho? o git mirror repo se actualizaría automáticamente? ¿o debería alguien en el Sitio B tener que search de forma manual cada vez?

  3. ¿Cuál es la mejor manera de actualizar el comentario del desarrollador del sitio B sobre gerrit de manera efectiva y oportuna? ¿Debería el desarrollador usar algún command para presionar directamente a Gerrit en el sitio A? ¿o debería el desarrollador simplemente presionar el código para reflejar el repository, luego volver a presionar al sitio A desde el espejo? Estoy perdido … necesita tus apoyos.

  4. porque el cliente repo C no es el mismo git repo en nuestra empresa, ¿cómo debo liberar el código para liberar el centro? ¿debería simplemente copyr la versión del proveedor para git repo clonado desde siteC, y luego volver a presionar? o ¿está bien que use algún tipo de command para enviar el código directamente desde el repository de trabajo del sitio A al repository de lanzamiento de C git del sitio?

  5. después del nuevo lanzamiento realizado por el centro de publicación de clientes en el sitio C, ¿cómo debo mantener el repository de actualización A del sitio B y el sitio G?

PD: Debido a que soy nuevo y más ágil en China, para get un costo de comunicación sin ambigüedades por la diferencia de time, intente dar alguna sugerencia de manera muy detallada. : p Muchas gracias por toda su ayuda con anticipación.

Echa un vistazo a esto , se trata de escalar y configurar la replicación para Gerrit