2. Comienzo de la configuración

AvisoEs preferible que realice estos procedimientos en un repositorio de prueba vacío y podamos asi asegurarnos de que entiende todas las consecuencias. Como siempre, asegúrese de tener respaldos recientes.

2.1. Inicio del repositorio

Lo primero a hacer al configurar un nuevo repositorio es decirle a CVS que lo inicie:

% cvs -d ruta-al-repositorio
         init
Esto le indica a CVS que cree el directorio administrativo CVSROOT, donde se albergarán todas las configuraciones.

2.2. El grupo del repositorio

Ahora vamos a crear al grupo dueño del repositorio. Todos los “committers” necesitan estar en este grupo, para de esta manera poder escribir en el repositorio. Asumiremos el grupo ncvs por defecto de FreeBSD.

# pw groupadd ncvs
       
A continuación, es necesario usar chown(8) en el directorio para ajustar los permisos al grupo reción agregado:
# chown -R :ncvs
        
        path-a-su-repositorio
Esto asegura que nadie podrá escribir en el repositorio sin los permisos de grupo adecuados.

2.3. Obtención del código

Ahora es necesario obtener el directorio CVSROOT del repositorio de FreeBSD. Puede hacerse muy fácilmente desde una réplica del CVS anónimo de FreeBSD. Para más información consulte el capítulo correspondiente del Handbook. Asumiremos que el código está en CVSROOT-freebsd en el directorio actual.

2.4. Copia de los “scripts” de FreeBSD

El siguiente paso consiste en copiar el código de FreeBSD sito en CVSROOT a nuestro repositorio. Si está familiarizado con CVS , puede pensar que se puede realizar importando los “scripts”, lo que debería permitirle sincronizar posteriores versiones muy fácilmente. No es así, CVS tiene una deficiencia en este aspecto: al intentar importar código al directorio CVSROOT no se actualizarán los ficheros administrativos necesarios. Para hacer que esto suceda es necesario ejecutar “checkin” en cada uno de ellos después de importarlos, perdiendo asi el valor de cvs import. En consecuencia el método recomendado para este cometido es sencillamente copiar los “scripts”.

No importa en realidad si no encuentra demasiado sentido al párrafo anterior, el resultado será el mismo. Simplemente haga “check out” de su CVSROOT y copie los ficheros de FreeBSD a su copia local:

% cvs -d 
        ruta-a-su-repositorio  checkout CVSROOT
        % cd CVSROOT
        % cp ../CVSROOT-freebsd/* .
        % cvs add *
Tenga en cuenta que probablemente recibirá advertencias acerca de directorios no copiados; es normal que suceda pero no debe usted preocuparse porque éstos no son necesarios.

2.5. Los “scripts”

Ahora ya cuenta con una copia exacta en su directorio de trabajo de los “scripts” que FreeBSD usa en la gestión de su repositorio. He aquí una descripción del cometido de cada uno de ellos.

2.6. Modificación de los “scripts”

El siguiente paso es configurar los “scripts” para que se adapten a sus necesidades. Tendrá que revisar todos y cada uno de los ficheros en el directorio y hacer sus propios cambios y configuraciones. Seguramente tendrá que editar los siguientes ficheros:

  1. Si no desea usar los “scripts” de la configuración específica de FreeBSD puede borrar tranquilamente el fichero access:

    % cvs rm -f access
             
    


  2. Editar avail para que contenga los diferentes directorios del repositorio en los cuales quiera controlar el acceso. Asegúrese de mantener la línea avail||CVSROOT, si no lo hace no podrí realizar el siguiente paso.

    Otra de las opciones que puede añadir a este fichero es el grupo de “committers”. Por defecto FreeBSD usa el fichero access para listar todos sus “committers” pero se puede usar cualquier fichero que se desee. También es posible agregar grupos si se desea (la sintaxis está declarada en la primera parte de cvs_acls.pl ).

  3. Edite cfg_local.pm para que contenga las opciones deseadas. Seguramente le serán de gran interés las siguientes configuraciones:

    • %TEMPLATE_HEADERS - éstos son procesados por los “scripts” de “log” y se insertan bajo el correo de commit si es que existen. Puede que quiera borrar las entradas PR y MFC after; y claro, puede agregar las suyas.

    • $MAIL_BRANCH_HDR - puede añadir una cabecera en cada correo de commit en la que se detalle la rama (“branch”) en la que se ha hecho el commit. Defina la cabecera según su configuración y necesidades o déjelo vacío si no desea usar dicha cabecera.

    • @COMMIT_HOSTS - defina éste valor si desea listar los “hosts” desde los que será posible hacer commits.

    • $MAILADDRS - defina éste como la dirección del administrador o de alguna lista donde reciban los correos de commit.

    • @LOG_FILE_MAP - cambie este valor como desee. Cada expresión regular (regexp) se compara en el directorio del commit, y el mensaje de log del commit se guarda en el subdirectorio commitlogs en el nombre de fichero mencionado.

    • $COMMITCHECK_EXTRA - si no desea usar las comprobaciones de acceso específicas de FreeBSD debería borrar la definición de $COMMITCHECK_EXTRA de este fichero.

    Nota: Cambiar el parámetro $IDHEADER es algo que sólo puede asegurarse que funcionará en FreeBSD; depende de las modificaciones específicas de CVS hechas por FreeBSD.

    Revise cfg.pm y compruebe si alguna de las opciones puede modificarse, aunque los cambios propuestos en los párrafos anteriores son bastante razonables.

  4. Seguramente quiera borrar las líneas del principio de exclude (las que contienen ^ports/, entre otras), puesto que son específicas de FreeBSD. Además de esto comente las líneas que empiecen con ^CVSROOT/ y agregue una línea sólo con ^CVSROOT/. Después de que “wrapper” sea instalado puede añadir su cabecera a los ficheros en el directorio CVSROOT y restaurar estas líneas; por lo pronto sólo estarán estorbarán en el momento que quiera hacer un commit.

  5. Edite modules y borre todo lo relacionado con FreeBSD. Añada sus propios módulos si lo cree necesario.

  6. Nota: Este paso es sólo necesario si usted ha declarado un valor a $IDHEADER en cfg_local.pm (que sólo funciona usando la versión de CVS modificada por FreeBSD).

    Edite options y asegúrese de que la etiqueta declarada sea la misma que en cfg_local.pm. Simplemente cambie la etiqueta FreeBSD por la suya.

  7. Edite rcstemplate para que contenga las mismas palabras clave (o “keywords”) declaradas en cfg_local.pm.

  8. Puede borrar (este paso es opcional) las comprobaciones realizadas por tagcheck. Puede simplemente añadir exit 0 al principio del fichero para deshabilitar todas las comprobaciones que hace sobre las etiquetas.

  9. El último paso antes de terminar es asegurarse de que sea posible guardar de modo seguro los mensajes de commit. Por defecto se guardan en el propio repositorio, en el subdirectorio commitlogs del directorio CVSROOT. Este directorio debe crearse del siguiente modo:

    % mkdir commitlogs
                % cvs add commitlogs
               
    


Después de una revisión cuidadosa debe hacer los commits necesarios con sus cambios. Asegúrese de haber activado su acceso al directorio CVSROOT en su avail antes de intentarlo. Una vez haya comprobado que todo es correcto puede hacer lo siguiente:

% cvs commit -m '- Commit
        para iniciar los scripts de FreeBSD'
       


2.7. Prueba de la configuración

Ahora ya está listo para la primera prueba: un commit forzado al fichero avail para asegurarnos de que todo funciona como se espera.

% cvs commit -f -m'Commit
        forzado para probar los nuevos scripts en CVSROOT'
        avail
Si todo ha funcionado ¡felicidades! Dispone de una configuración de los “scripts” de FreeBSD en su repositorio. Si CVS le da algún tipo de error en algo revise todo de nuevo y asegúrese de que todos los pasos se hayan hecho correctamente.

Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Si tiene dudas sobre FreeBSD consulte la documentación antes de escribir a la lista <questions@FreeBSD.org>.
Envíe sus preguntas sobre la documentación a <doc@FreeBSD.org>.