Node:El Fichero checkoutlist, Previous:El Fichero notify, Up:El directorio administrativo CVSROOT/
Si mira en CVSROOT/, verá qué copias de trabajo de los ficheros existen,
junto a sus ficheros de revisión RCS:
floss$ ls /usr/local/nuevorepos/CVSROOT checkoutlist config,v history notify taginfo checkoutlist,v cvswrappers loginfo notify,v taginfo,v commitinfo cvswrappers,v loginfo,v passwd verifymsg commitinfo,v editinfo modules rcsinfo verifymsg,v config editinfo,v modules,v rcsinfo,v floss$
CVS presta sólo atención a las versiones de trabajo, no a los ficheros RCS,
cuando está buscando una guía sobre cómo comportarse. Por tanto, siempre que
haga un envío de cambios de su copia de trabajo de CVSROOT/ (de la que podría
obtenerse incluso, después de todo, una copia de trabajo desde otra máquina
distinta), CVS actualiza automáticamente todos los ficheros cambiados en el
propio repositorio. Sabrá que esto ocurre porque CVS mostrará un mensaje al
final de estos envíos:
floss$ cvs ci -m "añadidos módulos mp y asub" modules Checking in modules; /usr/local/nuevorepos/CVSROOT/modules,v <-- modules new revision: 1.2; previous revision: 1.1 done cvs commit: Rebuilding administrative file database
CVS se entera automáticamente de lo que pasa con los ficheros estándar de administración, y los reconstruirá en CVSROOT/ cuando sea necesario. Si decide poner ficheros personalizados en CVSROOT/ (como programas o ficheros de plantilla rcsinfo), tendrá que decirle explícitamente a CVS que los trate del mismo modo.
Éste es el propósito del fichero checkoutlist. Tiene un formato distinto
al de la mayoría de los ficheros que hemos visto hasta ahora
NOMBRE_FICHERO MENSAJE_DE_ERROR_SI_NO_PUEDE_OBTENERSE_COPIA_DEL_FICHERO
por ejemplo,
log.pl imposible obtener copia de / actualizar log.pl en CVSROOT bugfix.tmpl imposible obtener copia de / actualizar bugfix.tmpl en CVSROOT
Tradicionalmente algunos ficheros de CVSROOT no se someten a control de
revisión. Uno de ellos es el fichero history, que mantiene un registro
en vivo de todas las acciones en el repositorio para usarse con las órdenes
cvshistory
(que lista actividades de marcas, obtenciones de copias
y actualizaciones para un fichero o un directorio del proyecto dado). A
propósito, si simplemente elimina el fichero history
CVS detendrá
servicialmente ese registro.
Nota: a veces el fichero history es la causa de problemas con los permisos, y la forma más fácil de resolverlos es o eliminarlo o hacerlo modificable por todo el mundo.
Otro fichero de administración no sujeto a revisión
es passwd, dado que
obtener una copia suya por la red comprometería las contraseñas (aunque estén
cifradas). Tendrá que decidir basándose en su propia situación de seguridad
si quiere añadir passwd a checkoutlist o no; por defecto no está.
Dos notas finales sobre el directorio CVSROOT/: Es posible, si comete un error lo bastante grande, que envíe cambios de un fichero administrativo que esté estropeado de tal forma que impida que se haga cualquier otro envío. Si hace esto, ¡por supuesto que no será capaz de enviar una versión corregida del fichero administrativo!. La solución es ir y editar a mano la copia de trabajo del repositorio del fichero administrativo para corregir el problema; puede que el repositorio entero esté inaccesible hasta que haga esto.
Además, en aras de la seguridad, asegúrese de que en el directorio CVSROOT/
sólo pueden escribir usuarios en quienes confía (con confianza
quiero
decir que confíe tanto en sus intenciones como en su capacidad para no
poner en peligro sus contraseñas). Los ficheros *info
le dan a la
gente la capacidad de invocar programas en general, así que cualquiera
que pueda hacer envíos o editar ficheros en el directorio CVSROOT/ puede
en la práctica ejecutar cualquier orden del sistema. Esto es algo que
siempre debe tener en mente.