Node:El Fichero checkoutlist, Previous:El Fichero notify, Up:El directorio administrativo CVSROOT/



El Fichero checkoutlist

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.