Node:El Fichero modules, Next:, Previous:El Fichero config, Up:El directorio administrativo CVSROOT/



El Fichero modules

En modules puede definir aliases y grupos alternativos de proyectos en el repositorio. La línea de module más básica es de la forma:

NOMBRE_MÓDULO   DIRECTORIO_EN_REPOSITORIO

por ejemplo,

mp    miproyecto
asub  miproyecto/a-subdir

(Las rutas dadas a la derecha son relativas al directorio raíz del repositorio.) Esto les da a los desarrolladores un nombre alternativo con el que obtener una copia de un proyecto o parte de un proyecto:

floss$ cvs co mp
cvs checkout: Updating mp
U mp/README.txt
U mp/foo.jpg
U mp/hello.c
cvs checkout: Updating mp/a-subdir
U mp/a-subdir/loquesea.c
cvs checkout: Updating mp/a-subdir/subsubdir
U mp/a-subdir/subsubdir/fish.c
cvs checkout: Updating mp/b-subdir
U mp/b-subdir/random.c

o

floss$ cvs -d /usr/local/nuevorepos/ co asub
cvs checkout: Updating asub
U asub/loquesea.c
cvs checkout: Updating asub/subsubdir
U asub/subsubdir/fish.c

Note cómo en ambos casos el nombre del módulo pasó a ser el nombre del directorio creado para la copia de trabajo. En el caso de asub, ni siquiera se preocupó del directorio intermedio miproyecto/, sino que en lugar de ello creó un asub/ en un nivel superior, aunque venía de miproyecto/a-subdir en el repositorio. Las actualizaciones, envíos de cambios y todos las órdenes CVS funcionarán normalmente en esas copias de trabajo - lo único raro que tienen son sus nombres.

Poniendo nombres de ficheros después del nombre de directorio podrá definir un módulo consistente sólo en algunos de los ficheros de un directorio del repositorio dado. Por ejemplo

readme  miproyecto  README.txt

y

no-readme  miproyecto  hello.c  foo.jpg

permitirían las siguientes obtenciones de copia respectivamente:

floss$ cvs -q co readme
U readme/README.txt
floss$ cvs -q co no-readme
U no-readme/hello.c
U no-readme/foo.jpg
floss$

Puede definir un módulo que incluya múltiples directorios de repositorio usando la opción -a (para alias), pero fíjese en que se investigarán los directorios bajo sus nombres originales. Por ejemplo, esta línea

dosproyectos  -a  miproyecto  tuproyecto

le permitiría hacer esto (asumiendo que tanto miproyecto/ como tuproyecto/ están en el repositorio):

floss$ cvs co dosproyectos
U miproyecto/README.txt
U miproyecto/foo.jpg
U miproyecto/hello.c
U miproyecto/a-subdir/loquesea.c
U miproyecto/a-subdir/subsubdir/fish.c
U miproyecto/b-subdir/random.c
U tuproyecto/README
U tuproyecto/foo.c
U tuproyecto/un-subdir/fichero1.c
U tuproyecto/un-subdir/fichero2.c
U tuproyecto/un-subdir/otro-subdir/bla.c

El nombre dosproyectos es un recurso conveniente para meterse en los dos proyectos, pero no afecta a los nombres de las copias de trabajo. (Por cierto, no hay necesidad de que los módulos alias se refieran a múltiples directorios; podríamos haber omitido dosproyectos, en cuyo caso aún se habría obtenido una copia de miproyecto bajo el nombre miproyecto.)

Los módulos pueden incluso referirse a otros módulos, poniéndoles como prefijo un signo &:

mp    miproyecto
asub  miproyecto/a-subdir
dosproyectos -a miproyecto tuproyecto
dp  &dosproyectos

Hacer un checkout de dp tendría exactamente el mismo resultado que el de dosproyectos.

Hay algunos otros trucos que puede hacer con módulos, la mayoría de ellos más infrecuentes que los que se acaban de presentar. Vea el nodo modules en el Cederqvist para obtener información sobre ellos.