Node:Acceder a un Repositorio, Next:Comenzar un nuevo Proyecto, Previous:Invocaci�n de CVS, Up:Un d�a con CVS
Antes de hacer nada, deber� decirle a CVS d�nde se encuentra el repositorio al que desea acceder. Esto no es problema si ya ha obtenido una copia de trabajo de ese repositorio, dado que cualquier copia de trabajo sabe de qu� repositorio procede, con lo cual CVS puede deducir autom�ticamente el repositorio al que corresponde una copia de trabajo cualquiera. Sin embargo, vamos a suponer que no dispone usted todav�a de una copia de trabajo, as� que tiene que decirle a CVS expl�citamente d�nde ir. Esto se hace con la opci�n global -d (de "directorio", una abreviatura para la que hay una justificaci�n hist�rica, aunque la -r de "repositorio" hubiera sido mejor), seguido por la senda que apunta al repositorio.
Por ejemplo, asumiendo que el repositorio se encuentra en el sistema local
en /usr/local/cvs (un lugar bastante est�ndar),
floss$ cvs -d /usr/local/cvs comando
En muchos casos, sin embargo, el repositorio estar� en otra m�quina, y por tanto deber� usar la red para llegar hasta �l. CVS ofrece varios m�todos de acceso; cu�l de ellos ser� el que utilice es algo que depende fundamentalmente de los requisitos de seguridad de la m�quina en la que se encuentra alojado el repositorio (a la que, de ahora en adelante, nos referiremos como "el servidor"). La configuraci�n del servidor para permitir varios m�todos de acceso remoto se comenta en Administracion del Repositorio; aqu� trataremos s�lo la parte de cliente.
Afortunadamente, todos los m�todos de acceso remoto comparten una misma sintaxis de invocaci�n. En general, para especificar un repositorio remoto y no uno local, lo que har� es utilizar una senda m�s larga. Primero debe indicar al m�todo de acceso, delimitado en cada lado por s�mbolos de dos puntos, seguido del nombre de usuario y el nombre del servidor unidos por el s�mbolo @, otros dos puntos de separaci�n, y, finalmente, la senda del directorio del repositorio en el servidor.
Veamos el m�todo de acceso pserver, que significa "servidor autentificado
por clave":
floss$ cvs -d :pserver:jluis@cvs.foobar.com:/usr/local/cvs login (Logging in to jluis@cvs.foobar.com) CVS password: (introduzca aqu� su contrase�a de CVS) floss$
La larga senda del repositorio que sigue a la opci�n -d ha ordenado a
CVS que use el m�todo de acceso pserver, con el nombre de usuario jluis,
en el servidor cvs.foobar.com, que tiene un repositorio CVS en /usr/local/cvs.
Por cierto, no hay ninguna raz�n para que el nombre del servidor sea
"cvs.algun_lugar.com"; esto es simplemente una convenci�n com�n, pero
podr�a haber sido tambi�n:
floss$ cvs -d :pserver:jluis@fish.foobar.org:/usr/local/cvs comando
El comando que se ejecut� en nuestro ejemplo fue "login", que verifica que dispone usted de autorizaci�n para trabajar en este repositorio. CVS le pedir� una contrase�a, contactando a continuaci�n con el servidor para verificarla. Siguiendo la costumbre Unix, "cvs login" no devolver� ninguna informaci�n adicional si la operaci�n tiene �xito, aunque s� mostrar� un mensaje de error si algo sale mal (por ejemplo, si la contrase�a es incorrecta).
S�lo tiene que autentificarse una vez desde su m�quina local ante un servidor CVS. Una vez que el proceso de autentificaci�n tiene �xito, CVS guarda la contrase�a en su directorio personal, en un fichero llamado .cvspass. CVS consultar� este fichero cada vez que se conecte al repositorio a trav�s del m�todo pserver, as� que s�lo tiene que ejecutar "login" la primera vez que acceda a un determinado servidor de CVS desde un sistema cliente particular. Por supuesto, puede volver a ejecutar cvs login en cualquier momento, si por ejemplo se hubiera cambiado la contrase�a.
Observaci�n: pserver es en este momento el �nico m�todo de acceso que requiere un proceso de autentificaci�n inicial como �ste; con el resto de m�todos de acceso puede empezar a ejecutar comandos de CVS inmediatamente.
Una vez que ha guardado la informaci�n de autentificaci�n en su fichero
.cvspass, puede ejecutar otros comandos de CVS utilizando la misma
sintaxis en la l�nea de comando:
floss$ cvs -d :pserver:jluis@cvs.foobar.com:/usr/local/cvs comando
Hacer que pserver funcione en Windows puede requerir un paso adicional.
Windows carece del concepto Unix de un directorio personal, as� que CVS
no sabe d�nde poner el fichero .cvspass; deber� especificar para ello un
lugar concreto. Generalmente se indica la ra�z de la unidad C: como el
directorio personal:
C:\WINDOWS> set HOME=C: C:\WINDOWS> cvs -d :pserver:jluis@cvs.foobar.com:/usr/local/cvs login (Logging in to jluis@cvs.foobar.com) CVS password: (introduzca aqu� su contrase�a) C:\WINDOWS>
Cualquier carpeta existente en la jerarqu�a de ficheros resultar� v�lida, aunque posiblemente prefiera evitar utilizar unidades de red, dado que el contenido de su fichero .cvspass ser�a entonces visible para cualquiera que pudiese acceder a esa unidad.
Adem�s de pserver, CVS soporta tambi�n los m�todos ext -que utiliza un programa de conexi�n externo. como rsh � ssh-, kserver -para el sistema de seguridad Kerberos versi�n 4-, y gserver, que usa el GSSAPI, esto es, el API de Generic Security Services, y tambi�n las versiones 5 y posteriores de Kerberos. Todos estos m�todos son similares a pserver, si bien cada uno presenta sus propias idiosincrasias.
De ellos, el m�todo ext
es probablemente el que m�s se usa
habitualmente. Si tiene la posibilidad de conectarse a un servidor
mediante rsh o ssh, puede usar el m�todo ext
. Puede probarlo de
esta forma:
floss$ rsh -l jluis cvs.foobar.com Password: (introduzca aqu� su contrase�a de usuario)
Bien, vamos a asumir que ha entrado y salido con �xito del servidor
con rsh, as� que ahora est� de nuevo en el sistema cliente original:
floss$ CVS_RSH=rsh; export CVS_RSH floss$ cvs -d :ext:jluis@cvs.foobar.com:/usr/local/cvs comando
La primera l�nea (empleando la sintaxis del shell Bourne de Unix) da a la variable de entorno CVS_RSH el valor rsh, que le dice a CVS que utilice el programa rsh para conectarse. La segunda l�nea puede ser cualquier comando de CVS; se le solicitar� su contrase�a para que CVS pueda conectarse con el servidor.
Si est� en el shell C en lugar del shell Bourne, pruebe esto:
floss% setenv CVS_RSH rsh
y para Windows, pruebe esto:
C:\WINDOWS> set CVS_RSH=rsh
El resto de esta gu�a emplear� la sintaxis Bourne; adapte los ejemplos a su entorno como necesite.
Para usar ssh (el shell seguro) en lugar de rsh, basta con que cree la
variable de entorno CVS_RSH de la forma apropiada:
floss$ CVS_RSH=ssh; export CVS_RSH
No se eche a temblar por el hecho de que el nombre de la variable es CVS_RSH y Ud. le est� dando el valor ssh. Hay razones hist�ricas para esto (la socorrida excusa Unix para todo, lo s�...). CVS_RSH puede apuntar al nombre de cualquier programa capaz de conectarle a un servidor remoto, ejecutar comandos y recibir su salida. Despu�s de rsh, ssh es posiblemente el programa m�s com�n que cumple estos requisitos, aunque probablemente existan otros. Tenga en cuenta que este programa no debe modificar su flujo de informaci�n de ninguna manera. Esto deja fuera al rsh de Windows NT, puesto que convierte (o intenta convertir) entre las convenciones de fin de l�nea de DOS y Unix. En su caso, deber� conseguir alg�n otro rsh para Windows, o bien utilizar un m�todo de acceso distinto.
Los m�todos gserver y kserver no se utilizan tanto como los dem�s y no se cubren aqu�. Son bastante parecidos a lo que aqu� se ha cubierto hasta ahora; para m�s informaci�n sobre ellos, lea el Cederqvist.
Si s�lo utiliza un repositorio y no quiere estar constantemente tecleando
"-d repositorio", s�lo tiene que crear la variable de entorno CVSROOT
(que quiz�s deber�a haber sido llamada CVSREPOS, pero ya es demasiado
tarde para eso):
floss$ CVSROOT=/usr/local/cvs floss$ export CVSROOT floss$ echo $CVSROOT /usr/local/cvs floss$
o quiz�s
floss$ CVSROOT=:pserver:jluis@cvs.foobar.com:/usr/local/cvs floss$ export CVSROOT floss$ echo $CVSROOT :pserver:jluis@cvs.foobar.com:/usr/local/cvs floss$
El resto de esta gu�a asume que ya ha creado la variable CVSROOT apuntando a su repositorio favorito, as� que los ejemplos no mostrar�n la opci�n -d. Si necesita acceder a muchos repositorios distintos, no deber�a crear la variable CVSROOT, sino limitarse a usar "-d repositorio" para indicar el repositorio a utilizar.