Node:Habilitar alarmas en el repositorio, Next:Usando alarmas durante el desarrollo, Previous:Cómo funcionan las alarmas, Up:Alarmas (CVS como telefono)
Primero se debe activar la notificación mediante correo electrónico
editando el fichero CVSROOT/notify. Uno de los dos desarrolladores debe
hacer esto o el administrador del repositorio si los desarrolladores no
tienen permiso para cambiar los ficheros administrativos del repositorio.
En cualquier caso la primera cosa es obtener el área administrativa y
editar el fichero notify:
floss$ cvs -q co CVSROOT U CVSROOT/checkoutlist U CVSROOT/commitinfo U CVSROOT/config U CVSROOT/cvswrappers U CVSROOT/editinfo U CVSROOT/loginfo U CVSROOT/modules U CVSROOT/notify U CVSROOT/rcsinfo U CVSROOT/taginfo U CVSROOT/verifymsg floss$ cd CVSROOT floss$ emacs notify ...
Cuando se edita el fichero notify por primera vez nos encontramos con
algo como esto:
# Versión en castellano # El fichero 'notify' especifica donde van se envían las notificaciones # procedentes de alarmas establecidas mediante "cvs watch add" ó "cvs # edit". La primera entrada de una línea es una expresión regular que se # compara con el directorio donde el cambio se está haciendo relativo a # $CVSROOT. Si coincide el resto de la línea es un programa filtro que # debería contener una ocurrencia %s que indica el usuario a notificar, e # informcación de su entrada de datos estándar. # # "ALL" o "DEFAULT" puede ser usada en lugar de la expresión regular. # # Por ejemplo: # ALL mail %s -s "notificación de CVS"
En realidad todo lo que hay que hacer es descomentar la última línea
quitando el carácter #
. Aunque notify
proporciana la misma
flexibilidad que otros ficheros administrativos a través de las
expresiones regulares normalmente no se va usar. La única razón de
tener múltiples lineas, cada una con un expresión regular para cada
parte del repositorio es si se van usar otros métodos de notificación
distintos para cada proyecto. Normalmente la mayoría de los proyectos usan
correo electrónico ya que es un buen método de notificación.
Para especificar la notificación mediante correo electrónico, la línea
ALL mail %s -s "notificación de CVS"
debería funcionar en cualquier Unix estándar. Éste comando hace que las
notificaciones o avisos sean enviadas mediante correo electrónico
con la línea de subject
notificación de CVS
(La expresión se
compara contra cualquier directorio). Cuando se haya descomentado la
línea hay que entregar el fichero notify para que el repositoria sea
consciente del cambio:
floss$ cvs ci -m "establecido notificación por alarma" cvs commit: Examining . Checking in notify; /usr/local/newrepos/CVSROOT/notify,v <-- notify new revision: 1.2; previous revision: 1.1 done cvs commit: Rebuilding administrative file database floss$
Editar este fichero es todo lo que hay que hacer para establecer alarmas
en el repositorio. Sin embargo si hay desarrolladores trabajando en
máquinas remotas es necesario editar el fichero CVSROOT/users
también. La función de este fichero es indicar a CVS a qué direcciones
de correo enviar las notificaciones para los usuarios remotos.
El formato de cada línea del fichero users sería:
CVS_USERNAME:EMAIL_ADDRESS
Por ejemplo,
qsmith:quentinsmith@farawayplace.com
El nombre de usuario al principio de la línea corresponde a un usuario
de CVS del fichero CVSROOT/password
(si está presente y el
método de acceso por servidor está siendo usado), o el usuario
del servidor ejecutando CVS. Siguiendo los dos puntos viene la
dirección de correo de ese usuario a la que el CVS enviará las
notificaciones.
Desgraciadamente en el momento de la escritura de este documeto el
fichero users no existe en la distribución estándar de CVS. Debido a que
es un fichero administrativo no sólo se debe crearlo, añadirlo
cvs add ...
y entregarlo commit ...
de la forma usual sino que
hay que añadirlo al fichero CVSROOT/checkoutlist
para que una
copia sea mantenida en el repositorio.
Lo siguiente es una sesión de ejemplo:
floss$ emacs checkoutlist ... (añade la línea para el fichero users) ... floss$ emacs users ... (añade la línea para el usuario qsmith) ... floss$ cvs add users floss$ cvs ci -m "añade users a checkoutlist, qsmith a users" cvs commit: Examining . Checking in checkoutlist; /usr/local/newrepos/CVSROOT/checkoutlist,v <-- checkoutlist new revision: 1.2; previous revision: 1.1 done Checking in users; /usr/local/newrepos/CVSROOT/users,v <-- users new revision: 1.2; previous revision: 1.1 done cvs commit: Rebuilding administrative file database floss$
Es posible usar direcciones de correo de formato expandido en
CVSROOT/usres
, pero hay que tener cuidado en poner todos los
espacios en blanco entre comillas. Veamos el siguiente ejemplo
qsmith:"Quentin Q. Smith <quentinsmith@farawayplace.com>"
o
qsmith:'Quentin Q. Smith <quentinsmith@farawayplace.com>'
Sin embargo, esto no funcionará:
qsmith:"Quentin Q. Smith" <quentinsmith@farawayplace.com>
Si hay dudas debería probar ejecutando la orden del fichero notify
directamente reemplazando %s
en
mail %s -s "CVS notification"
por lo que sigue después de los dos puntos en el fichero users. Si funciona desde el prompt debería hacerlo también en el fichero de usuarios.
Cuando está terminado el fichero checkout debería aparecer como:
# El fichero 'checkoutlist' se usa para soportar ficheros adicionales de
# control de versión administrativos de $CVSROOT/CVSROOT, como plantillas.
#
# La primera entrada de una línea es un nombre de fichero que será obtenido
# del correspondiente RCS fichero del directorio $CVSROOT/CVSROOT.
# El resto de la línea será el mensaje de error que aparecerá si el fichero
# no se puede obtener.
#
# Formato del fichero:
#
# [<espacio en blaco>]<nombre del fichero><espcio en blanco>
<mensaje de error><find de línea>
#
# líneas de comentario enmpiezan con '#'
users No ha sido posible obtener users
file in CVSROOT.
Ya hemos visto como se prepara el repositorio para las alarmas. Pasemos ahora a lo que los desarrolladores tienen que hacer en sus copias de trabajo.