Apéndice DG1. El Repositorio del CVS

Tabla de contenidos
Organización del árbol de CVS
Tomando Las Fuentes Vía CVS Anónimo
Tomando Los Fuentes Vía CVSup

El código fuente de Postgres se almacena y administra utiliando el sistema de gestión de código CVS.

Hay al menos dos métodos, CVS anónimo y CVSup, utilizables para copiar el árbol del código de CVS desde el servidor de Postgres a su máquina local.

Organización del árbol de CVS

Author: Escrito por Marc G. Fournier el 1998-11-05.

Traductor: Traducido por Equipo de traducción de PostgreSQL el 2001-03-14.

(N. del T: Ismael Olea ha escrito un estupendo documento llamado "Micro-cómo empezar a trabajar con cvs", muy facil de entender y de utilizar, y que puede resultar muy interesante para los que sólo deseen utilizar un cliente de CVS de modo genérico. Como él también colabora en la traducción, no puedo por menos de recomendarlo.

Lo pueden conseguir en su página personal y desde luego pidiendoselo directamente a él olea@hispafuentes.com. Fin de la N. del T.)

El comando cvs checkout tiene un indicador (flag), -r, que le permite comprobar una cierta revisión de un módulo. Este indicador facilita también, por ejemplo, recuperar las fuentes que formaban la release 1.0 del módulo `tc' en cualquier momento futuro:

$ cvs checkout -r REL6_4 tc
   
Esto es utilizable, por ejemplo, si alguien asegura que hay un error (un bug) en esa release, y usted no es capaz de encontrarlo en la copia de trabajo actual.

Sugerencia: También puede usted comprobar un módulo conforme era en cualquier momento dado utilizando la opción -D.

Cuando etiquete usted más de un fichero con la misma etiqueta, puede usted pensar en las etiquetas como "una línea curva que recorre una matriz de nombres de ficheros contra número de revisión". Digamos que tenemos 5 ficheros con las siguientes revisiones:

             fich1   fich2   fich3   fich4   fich5
     
             1.1     1.1     1.1     1.1  /--1.1*      <-*-  TAG (etiqueta)
             1.2*-   1.2     1.2    -1.2*-
             1.3  \- 1.3*-   1.3   / 1.3
             1.4          \  1.4  /  1.4
                           \-1.5*-   1.5
                             1.6
   
donde la etiqueta "TAG" hará referencia a fich1-1.2, fich2-1.3, etc.

Nota: Para crear la rama de una nueva release, se emplea de nuevo el comando -b, del mismo modo anterior.

De este modo, para crear la release v6.4, hice lo siguiente:

$ cd pgsql
$ cvs tag -b REL6_4
   
lo cual creará la etiqueta y la rama para el árbol RELEASE.

Ahora, para aquellos con acceso CVS, también es sencillo. Primero, cree dos subdirectorios, RELEASE y CURRENT, de forma que no mezcle usted los dos. A continuación haga:

cd RELEASE
cvs checkout -P -r REL6_4 pgsql
cd ../CURRENT
cvs checkout -P pgsql
   
lo que dará lugar a dos árboles de directorios, RELEASE/pgsql y CURRENT/pgsql. A partir de este momento, CVS tomará el control de qué rama del repositorio se encuentra en cada árbol de directorios, y permitirá actualizaciones independientes de cada árbol.

Si usted sólo está trabajando en el árbol fuente CURRENT hágalo todo tal como empezamos antes etiquetando las ramas de la release. If you are only working on the CURRENT source tree, you just do everything as before we started tagging release branches.

Una vez que usted realiza el checkout (igualado, comprobación, descarga) inicial en una rama,

$ cvs checkout -r REL6_4
   
todo lo que usted haga dentro de esa estructura de directorios se restringe a esa rama. Si usted aplica un patch a esa estructura de directorios y hace un
cvs commit
   
mientras usted se encuentra dentro de ella, el patch se aplica a esa rama y sólo a esa rama.