Node:Cómo funcionan las alarmas, Next:Habilitar alarmas en el repositorio, Up:Alarmas (CVS como telefono)
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.