Node:El Fichero modules, Next:Los Ficheros commitinfo y loginfo y rcsinfo, Previous:El Fichero config, Up:El directorio administrativo CVSROOT/
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.