Node:Iniciando un repositorio, Next:, Previous:Anatomia de una distribucion CVS, Up:Administracion del Repositorio



Iniciando un repositorio

Una vez que el ejecutable CVS esté instalado en su sistema, podrá empezar a usarlo en seguida como cliente para acceder a repositorios remotos, siguiendo los procedimientos descritos en Una introduccion a CVS. Sin embargo, si quiere servir revisiones desde su máquina, tendrá que crear un repositorio en ella. La orden para hacerlo es

floss$ cvs -d /usr/local/nuevorepos init

donde /usr/local/nuevorepos es la ruta a donde usted quiera que esté el repositorio (por supuesto, deberá tener permiso de escritura en ese directorio, lo que podría implicar ejecutar la orden como root). En cierto modo puede parecer poco intuitivo que la localización del repositorio nuevo se especifique antes de la suborden init en lugar de después de él, pero usando la opción -d sigue siendo consistente con otras órdenes CVS.

La orden acabará silenciosamente después de ejecutarse. Vamos a examinar el nuevo directorio:

floss$ ls -ld /usr/local/nuevorepos
drwxrwxr-x   3 root     root         1024 Jun 19 17:59 /usr/local/nuevorepos/
floss$ cd /usr/local/nuevorepos
floss$ ls
CVSROOT
floss$ cd CVSROOT
floss$ ls
checkoutlist     config,v        history     notify     taginfo,v
checkoutlist,v   cvswrappers     loginfo     notify,v   verifymsg
commitinfo       cvswrappers,v   loginfo,v   rcsinfo    verifymsg,v
commitinfo,v     editinfo        modules     rcsinfo,v
config           editinfo,v      modules,v   taginfo

floss$

El único subdirectorio del repositorio nuevo - CVSROOT/ - contiene varios ficheros de administración que controlan el comportamiento de CVS. Más adelante examinaremos esos ficheros uno a uno; por ahora, nuestro objetivo sólo es conseguir que el repositorio funcione. En este caso, "funcionar" significa que los usuarios puedan importar, actualizar, obtener copias de trabajo y enviar cambios a los proyectos.

No hay que confundir la variable de entorno CVSROOT introducida en Una introduccion a CVS con este subdirectorio CVSROOT del repositorio. No tienen nada que ver - es una coincidencia desafortunada que compartan el mismo nombre. La primera es una forma de evitarles a los usuarios tener que teclear -d <situación-del-repositorio> cada vez que usen CVS; el segundo es el directorio de administración de un repositorio.

Una vez que el repositorio se haya creado, deberá ocuparse de sus permisos. CVS no requiere de ningún permiso estándar particular o sistema de propiedad de ficheros; simplemente necesita acceso de escritura al repositorio. Sin embargo - en parte por razones de seguridad, pero sobre todo por su propia salud como administrador - recomiendo encarecidamente que siga los siguientes pasos:

  1. Añada un grupo de Unix cvs a su sistema. Cualquier usuario que necesite acceder al repositorio debería estar en el grupo. Por ejemplo, la línea del fichero /etc/group de mi máquina es:
    cvs:*:105:kfogel,sussman,jimb,noel,lefty,fitz,craig,anonymous,jluis
    
  2. Haga que la propiedad y permisos del repositorio reflejen este nuevo grupo:
    floss$ cd /usr/local/nuevorepos
    floss$ chgrp -R cvs .
    floss$ chmod ug+rwx . CVSROOT
    

Ahora cualquiera de los usuarios listados en el grupo podrá empezar un proyecto ejecutando cvs import como se describió en Una introduccion a CVS. Las órdenes "checkout", "update" y "commit" también deberían funcionar. También podrán entrar en el repositorio desde localizaciones remotas usando el método :ext:, asumiendo que tienen acceso por rsh o ssh a la máquina del repositorio. (Se habrá percatado de que las órdenes "chgrp" y "chmod" en el ejemplo de arriba le dieron acceso de escritura a un usuario llamado anonymous, que no es lo que uno esperaría. La razón es que incluso los usuarios anónimos y de sólo lectura del repositorio necesitan acceso de escritura a nivel del sistema, para que sus procesos CVS puedan crear ficheros de bloqueo temporales dentro del repositorio. CVS no asegura la restricción de "sólo lectura" del acceso anónimo por medio de permisos de ficheros Unix sino por otros medios, de lo que se hablará en Acceso anonimo.)

Si su repositorio está destinado a servir proyectos al público en general, en cuyo caso los contribuidores no tendrán necesariamente cuentas en la máquina del repositorio, debería configurar ahora el servidor de autentificación de contraseñas (see El servidor de autentificacion de contrasen~as). Es necesario para acceso anónimo de sólo lectura, y seguramente sea la manera más fácil de asegurar acceso al envío de cambios a ciertas personas sin tener que darles cuentas completas en la máquina.