2011-08-03 10 views
5

Estamos utilizando git para un proyecto de múltiples sitios y tanto el repositorio como el equipo han crecido sustancialmente. Por lo tanto, los sitios remotos están sufriendo. Me gustaría agregar nuevos servidores git a los sitios remotos para disminuir la carga en nuestro servidor git y hacer que las descargas sean más rápidas. Sin embargo, no estoy seguro de cómo mantener estos sincronizados. ¿Hay alguna forma de replicar los servidores de git atómicamente? Y si no otras sugerencias?replicación del servidor git

Respuesta

3

Puede tener un repositorio principal de "escritura", y varios controles remotos, leer solo, rescatar de eso. A su vez, los usuarios remotos sacarían de eso. Eso le daría velocidades de descarga mayores desde sitios remotos. Las cargas seguirán siendo las mismas, pero parece que la velocidad de descarga es tu principal preocupación.

+0

Estaba pensando en lo mismo. Sin embargo, ¿cómo se evita una situación en la que la confirmación está en contra de una extracción de un servidor de solo lectura que no está actualizado? Me parece que esto podría causar algunos problemas (fusión/contención, etc.). –

+2

La inserción fallará y el usuario tendrá que volver a buscar y fusionar o volver a establecer la base de datos y volver a intentarlo. Anime compromisos buenos, limpios y frecuentes, y esto nunca será un problema para usted. Si todo el mundo trabaja todo el día en el tirón de la mañana y hace un último "tiempo para irse a casa", se comprometen y todos lo presionan bien cuando suena el silbato, la contienda y el trabajo adicional generado allí son solo síntomas. :) – Dustin

+1

Ese mismo problema podría ocurrir si lo extrajo del _central_ repo y alguien hizo commits después de tirar. Podrías configurar fácilmente un hook o cron que se asegurará de que los reposs de _satellite_ no estén a más de unos pocos minutos del _central_ repo – Andy

1

No se puede replicar atómicamente. Estoy esperando que eso no sea lo que quieres decir.

Escribí gitmirror para activar automáticamente una replicación remota basada en el arrastre en el cambio de repositorio. Requiere un poco de configuración, pero tengo un montón de cosas viniendo a través de Github (y algunas que no usan github).

+0

que quise decir atómicamente. Sin embargo, gitmirror podría resolver la otra parte de mi problema que estaba reflejando. –

+0

Atomically es muy bien incompatible con un sistema distribuido globalmente con muchas partes móviles. También es indeseable. El propósito de un sistema de control de revisión distribuido es permitir que este tipo de cosas funcionen aunque no haya ninguna conexión. – Dustin

Cuestiones relacionadas