Node:Encontrar quién vigila qué, Next:, Previous:Controlar qué acciones son vigiladas, Up:Alarmas (CVS como telefono)



Encontrar quién vigila qué

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.