Node:Opciones Globales, Next:, Previous:Formatos de Fecha, Up:Ordenes y Opciones



Opciones Globales

Aquí están todas las opciones globales de CVS.

--allow-root=REPOSITORY

La primera opción global alfabéticamente es una que no se usa nunca en la línea de mandatos. La opción -alow-root se usa con el mandato pserver para permitir acceso acreditado al repositorio dicho (que es el nivel alto de un repositorio, como /usr/local/newrepos, no un subdirectorio de proyecto como /usr/local/newrepos/myproj).

Esta opción global no se usa virtualmente nunca en la línea de mandatos. Normalmente el único sitio donde lo usaría es en los ficheros /etc/inetd.conf (ver Administracion del Repositorio), que es también casi el único sitio donde el mandato pserver se usa.

Cada repositorio a ser accedido vía cvs pserver en un servidor dado, necesita la correspondiente opción -allow-root en /etc/inetd.conf. Éste es un dispositivo de seguridad, pensado para asegurar que cualquiera no puede usar un pserver de CVS para conseguir acceso a repositorios privados.

(Ver El servidor de autentificacion de contrasen~as también en el nodo Servidor Acreditado por Clave en el manual Cederqvist.)

-a

Esto acredita todas las comunicaciones con el servidor. Esta opción no tiene efecto a no ser que se esté conectado vía servidor GSSAPI (gserver). Las conexiones GSSAPI no se cubren en este libro, porque son todavía usadas raramente (aunque esto puede cambiar). (Ver las notas Opciones Globales y Acreditación GSSAPI en el manual Cederqvist para obtener más información.)

-b (Caído en desuso)

Esta opción especifica formalmente el directorio donde los ejecutables del RCS se encuentran. CVS ahora implementa las funciones RCS internamente, por lo que esta opción no surte efecto (se mantiene sólo por compatibilidad retrospectiva).

-d REPOSITORIO

Esto especifica el repositorio, que puede ser una ruta absoluta o una expresión más compleja involucrando método de conexión, nombre de usuario, servidor y ruta. Si es una expresión especificando un método de conexión, la sintaxis general es:

:MÉTODO:USUARIO@NOMBRE_DEL_SERVIDOR:RUTA_AL_REPOSITORIO

Aquí hay ejemplos usando cada uno de los métodos de conexión:

-e EDITOR

Invoca EDITOR para su mensaje de entrega, si el mensaje de entrega no se especifica en la línea de mandatos con la opción -m. Normalmente, si no da un mensaje con la opción -m, CVS invoca el editor basado en las variables de entorno $CVSEDITOR, $VISUAL, o $EDITOR, que comprueba en este orden. Fallado esto, invoca el editor popular de Unix vi.

Si pasa tanto la opción -e como la -m en una entrega, el -e no se tiene en cuenta a favor del mensaje de entrega dado en la línea de mandatos (de este modo es seguro usar -e en un fichero .cvsrc).

-f

Esta opción global suprime la lectura del fichero .cvsrc.

--help [MANDATO] o -H [MANDATO]

Estas dos opciones son sinónimas. Si no se especifica MANDATO, se imprime un mensaje de uso básico a la salida estándar. Si se especifica MANDATO, se imprime un mensaje de uso para ese mandato.

--help-options

Imprime una lista con todas las opciones globales de CVS, con breves explicaciones.

--help-synonyms

Imprime una lista de mandatos CVS y sus formatos cortos ("up" para "update", y así sucesivamente).

-l

Suprime el registro del mandato en el fichero CVSROOT/history en el repositorio. El mandato se ejecuta normalmente, pero no se realiza ninguna archivación en el fichero de historial.

-n

No cambia ningún fichero en la copia de trabajo o en el repositorio. En otras palabras, el mandato se ejecuta como una "ejecución en seco" - CVS corre a través de la mayoría de los pasos del mandato pero evita cualquier clase de ejecución.

Ésto es útil cuando quiere ver qué habría hecho el mandato si usted lo hubiera ejecutado. Un escenario común es cuando quiere ver qué ficheros de su directorio de trabajo han sido alterados, pero no una actualización completa (que podrí traer cambios del repositorio). Ejecutando cvs -n update, puede ver un sumario de qué ha sido hecho localmente, sin cambiar su copia de trabajo.

-q

Esto pide a CVS ser moderadamente silencioso, suprimiendo la impresión de mensajes de información no importantes. Qué es considerado "importante" depende del mandato. Por ejemplo, en actualizaciones, los mensajes que CVS imprime normalmente al entrar en cada subdirectorio de la copia de trabajo se suprimen, pero los mensajes de estado de una línea para los ficheros modificados o actualizados se siguen imprimiendo.

-Q

Esto pide a CVS ser muy silencioso suprimiendo toda la salida excepto los que son absolutamente necesario para completar el mandato. Los mandatos cuyo único propósito es producir alguna salida (como diff o annotate), de hecho, siguen dando esa salida. Sin embargo, los mandatos que podrían tener un efecto independiente de cualquier mensaje que pudieran imprimir (como update o commit) no imprimen nada.

-r

Hace que los ficheros de trabajo sean creados como de sólo lectura (el mismo efecto que configurando la variable de entorno CVSREAD).

Si usted pasa esta opción, las obtenciones y las entregas hacen los ficheros de sólo lectura en su copia de trabajo (asumiendo que su sistema operativo lo permita). Francamente, no sé por qué alguien podría querer usar alguna vez esta opción.

-s VARIABLE=VALOR

Esto asigna el VALOR a la variable interna de CVS llamada VARIABLE.

En el lado del repositorio, los fichero disparadores CVSROOT/*info puede expandir tales variables a valores que fueron asignados en la opción -s. Por ejemplo, si CVSROOT/loginfo contiene una línea como esta

miproyecto  /usr/local/bin/foo.pl ${=PEZ}

y alguien ejecuta una entrega desde una copia de trabajo miproyecto así

floss$ cvs -s PEZ=carpa commit -m "arreglado el bug cebo"

el script foo.pl se invoca con carpa como un argumento. Note la sintaxis chula, así: El signo del dólar, igual y las llaves son todas necesarias - si alguno de ellos falta, la expansión no toma lugar (al menos no como se trataba). Los nombres de variables sólo pueden contener alfanuméricos y subrayados. Aunque no se requiere que estén en mayúsculas, la mayoría de la gente parece seguir esta convención.

Puede usar el indicador -s tantas veces como quiera en un mandato simple. Sin embargo, si el script disparador se refiere a variables que no son asignadas en una invocación particular de CVS, el mandato también tiene éxito, pero ninguna de las variables se expande, y el usuario ve un aviso. Por ejemplo, si loginfo tiene esto

miproyecto  /usr/local/bin/foo.pl  ${=PEZ}  ${=AVE}

pero el mismo mandato de antes se ejecuta

floss$ cvs -s PEZ=carpa commit -m "arreglado el bug cebo"

la persona que ejecuta el mandato ve un mensaje de aviso como este (puesto al final de la salida)

loginfo:31: no such user variable ${=AVE}

(loginfo:31: variable de usuario inexistente) y el script foo.pl se invoca sin argumentos. Pero si se ejecuta este mandato

floss$ cvs -s PEZ=carpa -s AVE=buitre commit -m "arreglado el bug cebo"

aquí no habría aviso, y tanto ${=PEZ} como ${=AVE} en loginfo estarían correctamente expandidos. En cualquier caso, la entrega en sí misma, tendría éxito.

Aunque estos ejemplos usan todos commit, la expansión de variables puede hacerse con cualquier mandato CVS que pueda ser notificado en un fichero disparador CVSROOT/ - que es por lo que la opción -s es global.

(Vea la sección Ficheros de Administracion del Repositorio más adelante en este capítulo para obtener más detalles sobre la expansión de variables en ficheros disparadores.)

-T DIRECTORIO

Guarda cualquier fichero temporal en el DIRECTORIO en vez de donde CVS lo pone normalmente (específicamente, esto sustituye el valor de la variable de entorno $TMPDIR, si existiera). DIRECTORIO debería ser una ruta absoluta.

Esta opción es útil cuando usted no tiene que permiso de escritura (y, por tanto, CVS tampoco) a los directorios temporales usuales.

-t

Traza la ejecución del mandato de CVS. Esto hace a CVS imprimir mensajes mostrando los pasos que se dan a lo largo de la ejecución de un mandato. Puede encontrarlo particularmente útil en conjunción con la opción global -n, para prever los efectos de un mandato poco familiar antes de ejecutarlo de verdad. También puede ser útil cuando intenta descubrir por qué un mandato falló.

-v o --version

Hace que CVS imprima información de sus versiones y derechos de copia y después salga sin error.

-w

Hace que los ficheros de trabajo sean creados como lectura-escritura (remplaza cualquier configuración de las variables de entorno $CVSREAD). Debido, de todos modos, a que los ficheros se crean por omisión en modo lectura-escritura, esta opción se usa raramente.

Si tanto -r como -w se pasan, -w domina.

-x

Encripta todas las comunicaciones con el servidor. Esta opción no tiene efecto a no ser que esté conectando vía servidor GSSAPI (gserver). Las conexiones GSSAPI no se cubren en este libro, porque son todavía raramente usadas (aunque esto puede cambiar). (Ver los nodos Opciones Globales y Acreditación GSSAPI en el manual Cederqvist para ampliar información.)

-z NIVEL-GZIP

Ajusta el nivel de compresión en las comunicaciones con el servidor. El argumento NIVEL-GZIP debe ser un número entre el uno y el nueve. El nivel uno es compresión mínima (muy rápida, pero poca compresión). El nivel nueve es la compresión más alta (aunque es mucho tiempo de CPU, pero asegura que comprime los datos). El nivel nueve es solamente útil en conexiones de red muy rapidas. La mayor parte de la gente encuentra los niveles entre el tres y el cinco los más benificiosos.

Un espacio entre -z y su argumento es opcional.