Node:Cómo funcionan las alarmas, Next:, Up:Alarmas (CVS como telefono)



Cómo funcionan las alarmas

En su comportamiento por defecto CVS trata cada copia de trabajo como una caja independiente. Nadie sabe lo que usted está haciendo hasta que entrega sus cambios. Así mismo usted no sabe lo que los demás están haciendo en las suyas; excepto a través de los métodos normales de comunicación, por ejemplo pegando una voz en la oficina: -¡Oye, voy a trabajar en el fichero.c ahora. Decidme si alguién está trabajando en él para no tener conflictos!

Este método informal funciona en proyectos donde la gente sabe más o menos quién es responsable de qué. Sin embargo, es más dificil cuando hay un gran número de desarrolladores activos en todas las partes del código base y quieren evitarse los conflictos. En estos casos, frecuentemente se pasa al área de responsabilidad de otro compañero y no se puede estar gritando en la oficina ya que el lugar de trabajo es geográficamente disperso.

Una característica de CVS llamada alarma proporciona un modo de avisarse entre ellos quién está trabajando en que fichero en un momento dado. Si alguien establece una alarma en un fichero puede ser advertido cuando otro desarrollador empieze a trabajar es ese fichero. La advertencia se envía normalmente por medio de correo electrónico pero es posible usar otros métodos.

Para usar alarmas, hay que modificar uno ó dos ficheros del área de admistración del repositorio, y los desarrolladores tienen que hacer un paso extra en el ciclo ususal de obtención/actualización/entrega. Los cambios en el repositorio son bastante simples: Necesita editar el fichero CVSROOT/notify para que CVS sepa que advertencias debe realizar. También hay que añadir algunas líneas al fichero CVSROOT/users, que aporta direcciones externas de correo electrónico.

En la copia de trabajo los desarrolladores tienen que decir al CVS qué ficheros debe vigilar para que CVS informe cuando alguién va a editar alguno de esos ficheros. Además uno tiene que decirle a CVS cuando empieza o termina de editar un fichero para que CVS a su vez lo indique a otros desarrolladores que podrían estar vigilando. Las siguientes órdenes son usadas para estos pasos extra.

El patrón de la orden watch se diferencia de otras órdenes comunes en que utiliza subórdenes, como por ejemplo cvs watch add..., cvs watch remove..., y así.

En el siguiente ejemplo vamos a ver cómo se establecen las alarmas en el repositorio y cómo se usan desde el área del desarrollador. Los dos usuarios de ejemplo, jrandom y qsmith, tienen su propia copia de trabajo que puede estar en diferentes máquinas. Seguimos asumiendo que la variable de entorno $CVSROOT está asignada y por ello no tenemos que pasar la opción -d <REPOS> a ningún comando CVS.