Node:Encontrar quién vigila qué, Next:Recomendar a la gente usar alarmas, Previous:Controlar qué acciones son vigiladas, Up:Alarmas (CVS como telefono)
Alguna vez puede interesarle saber quien está vigilando o editando un
fichero sin antes de ejecutar cvs edit
o ver quién está editando qué
sin añadirse a ninguna lista de vigilancia. O podría haber olvidado
su propio estatus. Después de haber establecido algunas alarmas y haber
entregado algunos ficheros es fácil saber que está uno vigilando y
editando.
CVS proporciona dos comandos para mostrar quién está vigilando y editando
qué ficheros - cvs watchers
y cvs editors
:
floss$ whoami jrandom floss$ cvs watch add hello.c floss$ cvs watchers hello.c hello.c jrandom edit unedit commit floss$ cvs watch remove -a unedit hello.c floss$ cvs watchers hello.c hello.c jrandom edit commit floss$ cvs watch add README.txt floss$ cvs watchers README.txt jrandom edit unedit commit hello.c jrandom edit commit floss$
Observe que la última orden cvs watchers
no especifica ningún
fichero y así muestra los vigilantes para todos los ficheros que
estén siendo vigilados.
Todas las órdenes watch
y edit
tienen en común con otras órdenes
CVS esta característica. Si usted especifica nombres de ficheros estas
órdenes actuan sobre ellos. Si se especifican nombres de directorio
actuan sobre cada fichero de ese directorio y sus subdirectorios. Si no
especifica nada, actuan sobre el directorio actual y sus subdirectorios.
Siguiendo con la sesión del ejemplo anterior:
floss$ cvs watch add a-subdir/whatever.c floss$ cvs watchers README.txt jrandom edit unedit commit hello.c jrandom edit commit a-subdir/whatever.c jrandom edit unedit commit floss$ cvs watch add floss$ cvs watchers README.txt jrandom edit unedit commit foo.gif jrandom edit unedit commit hello.c jrandom edit commit unedit a-subdir/whatever.c jrandom edit unedit commit a-subdir/subsubdir/fish.c jrandom edit unedit commit b-subdir/random.c jrandom edit unedit commit floss$
El penúltimo comando hizó a jrandom un vigilante de todos los ficheros
del proyecto y el último mostró cada lista de cada fichero del proyecto.
La salida de cvs watchers
puede que no perfectamente
alineado por columnas debido a que se mezclan tabuladores con
información de longitud variable, pero el formateo de las líneas es
consistente.
[FILENAME] [espacio en blanco] WATCHER [espacio en blanco] ACTIONS-BEING-WATCHED...
Observe qué pasa cuando qsmith empieza a editar uno de los ficheros:
paste$ cvs edit hello.c paste$ cvs watchers README.txt jrandom edit unedit commit foo.gif jrandom edit unedit commit hello.c jrandom edit commit unedit qsmith tedit tunedit tcommit a-subdir/whatever.c jrandom edit unedit commit a-subdir/subsubdir/fish.c jrandom edit unedit commit b-subdir/random.c jrandom edit unedit commit
El fichero hello.c tiene un nuevo vigilante: qsmith (observe que el
nombre del fichero no se repite sino que se deja un espacio en blanco
al principio de la línea; esto es importante si usted alguna vez
escribiera un programa que compila la salida de la orden).
Ya que está editando el fichero hello.c, qsmith tendrá una
temporary watch alarma temporal sobre el fichero, la cual
se terminará cuando haga una entrega sobre éste.
El prefijo ðt
delante de cada acción indica que son
alarmas termporales.
Si qsmith se añade a la lista de vigilantes regulares de hello.c
paste$ cvs watch add hello.c README.txt jrandom edit unedit commit foo.gif jrandom edit unedit commit hello.c jrandom edit commit unedit qsmith tedit tunedit tcommit edit unedit commit a-subdir/whatever.c jrandom edit unedit commit a-subdir/subsubdir/fish.c jrandom edit unedit commit b-subdir/random.c jrandom edit unedit commit
se encontrará a la vez como un vigilante temporal y un vigilante
permanente. Se puede decir que el estatus de vigilante permanente
sobrepasa al temporal. Entonces la línea sería como:
qsmith edit unedit commit
Sin embargo, CVS no puede reemplazar las alarmas temporales porque
sabe que orden ocurren las acciones. ¿Se quitará qsmith de la lista
permanente de vigilancia antes de acabar su sesión de edición?, o
¿acabará sus ediciones siendo todavía un vigilante?. En el primer caso
las acciones edit / unedit / commit
desaparecen mientras que
tedit / tunedit / tcommit
permanecen; en el segundo caso ocurre
lo contrario. De cualquier forma esto no será de gran importancia.
Casi siempre lo que usted hará es ejecutar
floss$ cvs watchers
o
floss$ cvs editors
desde el nivel más alto para ver quién está haciendo qué. No necesita conocer los detalles de quien está vigilando que acciones: lo importante son las personas y los ficheros.