¿Cómo puedo mejorar el rendimiento de CVS en un escenario de múltiples sitios?

StackOverflow https://stackoverflow.com/questions/138280

  •  02-07-2019
  •  | 
  •  

Pregunta

Actualmente estoy trabajando en un proyecto con desarrolladores que trabajan en tres sitios. Uno de los sitios está en Delhi, India, mientras que los otros dos están en Europa. La comunicación entre las oficinas europeas y la oficina en Delhi tiene un ancho de banda pobre y una latencia bastante mala, y una actualización de CVS desde allí a menudo toma de 5 a 10 minutos, aunque solo unos pocos archivos han cambiado.

¿Hay algún buen proxy CVS por ahí, o alguna forma ingeniosa de mantener sincronizados los servidores CVS separados? ¿Tiene algún otro consejo sobre cómo se puede mejorar el rendimiento en este escenario?

Lamentablemente, estaremos atascados con CVS durante el alcance de este proyecto, por lo que cambiar a algo completamente diferente no es una opción a corto plazo.

¿Fue útil?

Solución

¿Por qué no está cambiando una opción?

Recomendaría cambiar a SVN o git en su lugar. Y que hagas esta conversión lo antes posible ... como hoy :)

Incluso hay svn herramientas / guías y herramientas / guías de git por ahí que hará esta conversión de CVS por ti.

Personalmente uso y amo SVN para mi trabajo, pero según la descripción anterior, parece que git podría ser la mejor opción para ti.

Otros consejos

Esto es lo que he hecho hace mucho tiempo en circunstancias similares cuando el ancho de banda y las redes no confiables eran un problema:

  • Haga una copia del repositorio e instálela en la ubicación remota. Sabes que tienes CVS1 y CVS2.
  • Bloquee una de las dos copias (CVS1) impidiendo confirmaciones. Esto se logra modificando 'commitinfo' en el módulo CVSROOT.
  • CVS1 solo se puede usar para actualizaciones
  • CVS2 se puede utilizar para actualizaciones y confirmaciones

Cuando desee dar acceso en la confirmación de copia 1, proceda de la siguiente manera:

  • Bloquear CVS2
  • Copiar CVS2 a CVS1
  • Desbloquear CVS1

Esto suena engorroso, y lo es si lo haces manualmente, pero funciona. Requiere un poco de disciplina si lo haces manualmente. Puede que las zonas horarias estén de tu lado por una vez.

Escribí una herramienta para hacer un seguimiento de quién tenía el token de confirmación y transferir los repositorios de un sitio a otro automáticamente a través de rsync y SSH. Funcionó muy bien durante un par de años. Nunca perdimos ningún dato y tardamos unos 5 minutos en transferir el token de una ubicación a otra.

La herramienta de transferencia se escribió en perl y me llevó aproximadamente dos semanas desarrollarla, trabajando en ella a tiempo completo.

Sé que hace mucho tiempo que los desarrolladores de FreeBSD usaron CVSup , pero yo nunca usé esa herramienta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top