BULMA

Bulma se une a la protesta contra SOPA y PIPA

Bergantells Usuaris de GNU/Linux de Mallorca i Afegitons   |   Bisoños Usuarios de GNU/Linux de Mallorca y Alrededores
CONTENIDOS
. Jornadas de software libre
. Version para PDA
. Enlaces breves
. La asociacion
. Los mas leidos
. Autores [Actividad]
. Ultimos Comentarios
. Todos los titulares!
. Estadisticas
. Guia de estilo
. ¿Sugerencias?
. Wiki
. XML [Ayuda]
Listas de correo
. Archivos bulmailing
. Archivos BulmaGes
Radio libre :-)
. Des de la Xarxa (Archivos)
. Mallorca en Xarxa
Busquedas

+ Enlaces Linux
Ultimos kernels
(23/05/2013 19:25:14)
    
Google


En bulma.net
En internet
Desarrollando en grupo con CVS (22966 lectures)
Por Josep Gayà
Zebub ()
Creado el 08/06/2001 23:10 modificado el 08/06/2001 23:10

En este artículo vamos a explicar cómo usar CVS. Un sistema que nos permite llevar a cabo proyectos con múltiples desarrolladores trabajando a la vez sobre el mismo código fuente.

Pagina1/1

Desarrollando en grupo con CVS

Josep Gayà Miralles

v0.1, 25 de Mayo 2001
En este artículo vamos a explicar cómo usar CVS. Un sistema que nos permite llevar a cabo proyectos con múltiples desarrolladores trabajando a la vez sobre el mismo código fuente. Distribuído bajo licencia FDL.

1. Introducción

2. Instalación del sistema CVS

3. Configuración del repositorio

4. Cómo definir módulos

5. El caso especial de los archivos binarios

6. Trabajando con CVS

7. Reslución de conflictos

8. Cómo añadir y quitar ficheros del repositorio

9. Algunos comandos adicionales

10. Acceso remoto al repositorio


1. Introducción

Las siglas CVS corresponden a Concurrent Versions System o Sistema de Versiones Concurrente. Como su propio nombre indica, CVS es principalmente un sistema de control de versiones. Esto quiere decir que es capaz de guardar y mantener accesibles las diferentes versiones que se van produciendo de un mismo fichero (típicamente de código fuente).

Pero lo que hace a CVS especialmente útil no es el control de versiones, sino el control de concurrencia que este permite. En los sistemas tradicionales de control de versiones, un desarrollador consigue una copia del fichero, lo modifica y después devuelve la nueva versión al sistema. Durante todo este proceso, ningún otro desarrollador tiene permiso para acceder a ese fichero.

En cambio CVS permite que varios desarrolladores estén trabajando a la vez sobre el mismo fichero. Y en la mayoría de los casos es capaz también de resolver automáticamente los conflictos que se producen al entregar las modificaciones.

Es por esto que CVS es especialmente útil en los proyectos al estilo open-source desarrollados a través de internet, ya que CVS permite a cada desarrollador trabajar con independencia y sin tener que preocuparse demasiado de las modificaciones que estén haciendo los demás. CVS se ocupa de hacer todo ese trabajo.

Si alguno de los que leéis este artículo estáis pensando en empezar un proyecto de código abierto y queréis que desarrolladores de todo el mundo puedan ayudaros y participar en él no lo dudéis, CVS es vuestro sistema. Si por el contrario creéis que esto del CVS está muy bien pero de momento no lo necesitáis seguid leyendo. Seguro que al terminar el artículo encontráis que os puede ser útil en algo.

2. Instalación del sistema CVS

Describiremos a continuación el proceso que se debe seguir para instalar CVS en nuestra máquina a partir de los fuentes en formato tgz. La versión que usaremos para describir el proceso de instalación es la 1.11, que es la última disponible en el momento de escribir este artículo. Aunque seguramente todo lo que se diga servirá perfectamente para versiones anteriores y posteriores.

Si vuestra distribución posee sistema de paquetes entonces la instalación será tan sencilla como bajaros el paquete y ejecutar algo parecido a $ rpm -i cvs-1.XX.X-X.i386.rpm si usáis RPMs. O ejecutar $ apt-get install cvs si usáis Debian. Pero para describir en proceso de manera general y para ayudar a entender mejor los pasos a seguir mejor vemos cómo instalar CVS a partir del tgz con las fuentes.

Para empezar, nos bajaremos las fuentes de ftp.cvshome.org/pub/cvs-1.11/cvs-1.11.tar.gz y proseguimos con la secuencia de comandos normal en la instalación de un tgz con fuentes. Todo ello como superusuario:

 
# tar xzf cvs-1.11.tar.gz 
# cd cvs-1.11 
# ./configure 
# make 
# make install 
Algunas opciones interesantes del configure son el --prefix=directorio, para cambiar el directorio de instalación. Y también --disable-client --disable-server para el caso en que sólo nos interese usar CVS como servidor o como cliente respectivamente. Si omitimos alguno de estos parámetros se compilará el ejecutable para funcionar de las dos formas. Estas opciones se incluyen porque el ejecutable que se usa para acceder al repositorio (cliente) y el que se usa para servir peticiones y administrar el repositorio (servidor) es el mismo.

3. Configuración del repositorio

Una vez ya tenemos instalado CVS, y si nuestra intención es usar el sistema para montar un repositorio, tenemos que llevar a cabo una serie de acciones. Lo primero es habilitar para CVS un directorio en nuestro sistema de ficheros. Si usamos, por ejemplo, /var/cvs haremos.

 
# export CVSROOT=/var/cvs 
# cvs init 
Con la variable de entorno CVSROOT, CVS sabe sobre que repositorio tiene que realizar las acciones. Es posible por lo tanto tener varios repositorios diferentes sobre la misma máquina simplemente cambiando esta variable de entorno. También es posible especificar el repositorio en la línea de comandos con la opción -d, pero es más cómodo definir la variable de entorno.

Ahora podemos ir al directorio /var/cvs/ y comprobaremos que se ha creado en su interior un directorio llamado CVSROOT. Este directorio es dónde se guardan los archivos necesarios para gestionar el repositorio.

En este punto tendremos que tomar una decisión con respecto a las acciones que queremos permitir que lleven a cabo los usuarios sobre el repositorio. Si las tareas de administración del repositorio como la modificación de ficheros del directorio CVSROOT, la gestión de módulos (que veremos más adelante) o la importación de fuentes la va a llevar a cabo el superusuario entonces los permisos del repositorio deberían ser del estilo de:

 
# ls -al $CVSROOT 
drwxrwxr-x    4 root     root         4096 mar 10 16:42 . 
drwxr-xr-x   16 root     root         4096 mar 10 16:16 .. 
drwxrwxr-x    3 root     root         4096 mar 10 16:16 CVSROOT 
Si por el contrario queremos tener la opción de permitir que otros usuarios administren el repositorio tendremos que hacer algunos cambios en los permisos. La opción que yo prefiero es crear un grupo de usuarios llamado cvsadmin y añadir al grupo los usuarios a los que decida dar permisos de administración sobre el repositorio. Como ejemplo crearemos el grupo y añadiremos al usuario pepito al grupo de administradores de CVS.

 
# addgroup cvsadmin 
# adduser pepito cvsadmin 
# chgrp -R cvsadmin $CVSROOT 
Una vez hecho esto ya estamos en disposición de poner un proyecto bajo CVS. Supongamos que somos el usuario pepito y que en el directorio prueba tenemos todos los archivos de nuestro proyecto.

 
$ export CVSROOT=/var/cvs 
$ cd prueba 
$ cvs import pruebacvs gnu inicio 
Con esto crearemos dentro el directorio $CVSROOT/pruebacvs que contendrá todos los ficheros de nuestro proyecto, ahora ya bajo el control de CVS. Los parámetros gnu e inicio son simples etiquetas que no tienen mucha importancia en la mayoría de casos, pero como CVS los requiere hay que ponerlos. Ahora podremos comprobar que todo ha funcionado correctamente.

 
$ cd .. 
$ cvs co pruebacvs 
Ahora se debería haber creado un directorio llamado pruebacvs en el que tendremos el mismo contenido que el directorio prueba. Bueno, no exactamente el mismo contenido. En cada directorio podremos ver un directorio adicional llamado CVS que no conviene borrar y que contiene información necesaria para que CVS haga su trabajo sin problemas.

4. Cómo definir módulos

A medida que vamos incluyendo archivos en nuestro repositorio y el árbol de directorios se va complicando más, puede resultar interesante usar la capacidad de CVS para definir módulos. Esto permite etiquetar determinados directorios para que sea más fácil acceder a ellos. Así bastará con poner el nombre de la etiqueta en vez de tener que poner todo el path necesario para acceder al directorio.

Esto se hace incluyendo estas etiquetas dentro del fichero modules que está situado en $CVSROOT/CVSROOT. Supongamos por ejemplo que queremos etiquetar el directorio situado en $CVSROOT/pruebacvs/documentos/articulos/ y llamarlo atajo. Entonces añadiremos al fichero modules la línea:

 
atajo pruebacvs/documentos/articulos/ 
De esta manera, cada vez que deseemos obtener una copia de $CVSROOT/pruebacvs/documentos/articulos/ bastará con hacer:

 
$ cvs co atajo 

5. El caso especial de los archivos binarios

Hay que tener especial cuidado si en el proyecto hay ficheros binarios tales como imágenes o ejecutables. No es una buena idea ponerlos bajo el control de versiones de CVS, pero es necesario en muchos casos para mantener juntos todos los archivos necesarios para el proyecto. Este cuidado es necesario porque CVS realiza de forma automática algunas tareas que pueden tener consecuencias catastróficas si se realizan sobre ficheros binarios. Una de estas tareas es la conversión automática del salto de línea de estilo MS-DOS al salto de línea de estilo UNIX.

Es una cosa muy útil en los ficheros de texto cuando los usuarios de CVS usan diferentes plataformas para desarrollar, pero cuando se realiza la conversión sobre ficheros binarios el resultado puede resultar cuando menos curioso.

Para evitar problemas hay que informar a CVS de cuándo un fichero es binario para que lo trate como tal. Durante el proceso de importación del proyecto esto se hace con la opción -W. Por ejemplo, con la opción -W "*.exe -k 'b'" le decimos que todos los ficheros con la extensión .exe los trate como binarios. Podemos añadir tantas opciones de este estilo como deseemos para cada tipo de archivo binario que contenga nuestro proyecto. Con el ejemplo anterior, si tenemos varias imágenes en formato PNG haremos:

 
$ cvs import -W "*.png -k 'b'" pruebacvs gnu inicio 
Podemos comprobar después que el CVS ha reconocido los ficheros como binarios con el comando cvs status, mirando que el campo Sticky Options contiene el valor -kb.

 
$ cvs status imagen.png 
=============================================================== 
File: imagen.png                Status: Up-to-date 
   Working revision:    1.1.1.1 Sat Mar 10 15:42:00 2001 
   Repository revision: 1.1.1.1 /var/cvs/pruebacvs/php.png,v 
   Sticky Tag:          (none) 
   Sticky Date:         (none) 
   Sticky Options:      -kb 
También se deberá tener en cuenta el tipo de los ficheros al añadirlos con posterioridad al repositorio mediante el comando add. La forma correcta de añadirlos se comenta más abajo.

6. Trabajando con CVS

Como ya supongo que habréis imaginado, el uso de CVS va a cambiar un poco la manera habitual de trabajar. Pero todos estos cambios nos permitirán olvidarnos casi por completo de si alguien está trabajando sobre el mismo fichero que nosotros o de preocuparnos por poder volver a una versión anterior de nuestro fichero si más adelante lo necesitamos.

Lo más importante para coger rápidamente la filosofía de CVS es tener claro que no trabajamos sobre el proyecto es sí, sino que lo hacemos sobre una copia del proyecto. De esta forma, es fácil deducir que las principales tareas que tendremos que realizar con CVS serán las de conseguir una copia del proyecto para empezar el trabajo y entregar los cambios al servidor.

Esto se hace con los comandos de CVS checkout(o co para abreviar) y commit. Para conseguir la copia del módulo sobre el que deseamos trabajar hacemos:

 
$ cvs co nombre_del_modulo 
Después ya podemos efectuar las modificaciones que deseemos y, una vez finalizadas ejecutar:

 
$ cvs commit nombre_del_modulo 
Sencillo, ¿no?. Efectivamente, no todo es tan sencillo. Para empezar, hemos dicho antes que una de las cosas que nos soluciona CVS es todo lo relacionado con las modificaciones concurrentes. Entonces, ¿que ocurre si entre mi checkout y mi commit alguien ha hecho también un commit de un fichero que he modificado?.

Pues bien, en este caso al hacer nosotros el commit CVS nos informará de que alguien ha efectuado cambios en el mismo fichero y no nos dejará continuar. Necesitaremos ejecutar un comando adicional llamado update, que se encargará de sincronizar nuestra copia del repositorio con la copia del servidor.

 
$ cvs update 
Al ejecutar este comando su salida nos informará del estado de cada uno de los ficheros con una letra que precede al nombre del fichero. Los ficheros actualizados los marcará con una 'U', los ficheros con modificaciones pendientes de entregar con una 'M' y los ficheros que han generado conflictos durante la actualización con una 'C'.

Hay que tener cuidado y tomar el tiempo necesario para revisar la salida de este comando, que es una de las mayores fuentes de desaguisados en el repositorio. Sobretodo hay que buscar los posibles conflictos que se han generado y resolverlos adecuadamente.

7. Reslución de conflictos

En la mayoría de casos, CVS es capaz de encajar dos versiones de un mismo archivo en una nueva versión el la que se reflejen todos los cambios de las dos versiones. Pero, en ocasiones, CVS no es capaz de realizar esta tarea automáticamente y tendremos que echarle una mano. Esto sucede cuando las modificaciones que se han hecho en las dos versiones tienen líneas en común. En este caso tendremos que editar el código fuente y decidir nosotros mismos que cambios son los que deben permanecer. Todo esto se ve más claro en el siguiente ejemplo:

Supongamos que la versión 1.4 del fichero driver.c contiene esto.

 
 #include <stdio.h> 
 
  void main() 
  { 
      parse(); 
      if (nerr == 0) 
          gencode(); 
      else 
          fprintf(stderr, "No code generated.\n"); 
      exit(nerr == 0 ? 0 : 1); 
  } 
La versión 1.6 esto otro.

 
  #include <stdio.h> 
 
  int main(int argc, 
           char **argv) 
  { 
      parse(); 
      if (argc != 1) 
      { 
          fprintf(stderr, "tc: No args expected.\n"); 
          exit(1); 
      } 
      if (nerr == 0) 
          gencode(); 
      else 
          fprintf(stderr, "No code generated.\n"); 
      exit(!!nerr); 
  } 
Y nuestra copia local, basada en la versión 1.4, contiene:

 
  #include <stdlib.h> 
  #include <stdio.h> 
 
  void main() 
  { 
      init_scanner(); 
      parse(); 
      if (nerr == 0) 
          gencode(); 
      else 
          fprintf(stderr, "No code generated.\n"); 
      exit(nerr == 0 ? EXIT_SUCCESS : EXIT_FAILURE); 
  } 
Como no tenemos la última versión del fichero, al hacer un commit no nos permitirá continuar y tendremos que hacer antes un update.

 
$ cvs update driver.c 
  RCS file: /usr/local/cvsroot/yoyodyne/tc/driver.c,v 
  retrieving revision 1.4 
  retrieving revision 1.6 
  Merging differences between 1.4 and 1.6 into driver.c 
  rcsmerge warning: overlaps during merge 
  cvs update: conflicts found in driver.c 
  C driver.c 
Entonces, CVS nos informa de que ha habido conflictos durante el reensablaje de las dos versiones y de que tendremos que resolver los conflictos manualmente. Editamos el fichero drivers.c y vemos lo siguiente:

 
  #include <stdlib.h> 
  #include <stdio.h> 
 
  int main(int argc, 
           char **argv) 
  { 
      init_scanner(); 
      parse(); 
      if (argc != 1) 
      { 
          fprintf(stderr, "tc: No args expected.\n"); 
          exit(1); 
      } 
      if (nerr == 0) 
          gencode(); 
      else 
          fprintf(stderr, "No code generated.\n"); 
  <<<<<<< driver.c 
      exit(nerr == 0 ? EXIT_SUCCESS : EXIT_FAILURE); 
  ======= 
      exit(!!nerr); 
  >>>>>>> 1.6 
  } 
Vemos que la zona de conflicto está claramente delimitada con `<<<<<<<', `=======' y `>>>>>>>'. La primera parte corresponde con nuestra versión del fichero, mientras que la segunda corresponde con la versión 1.6. Entonces decidimos los cambios a efectuar (obviamente deberemos como mínimo borrar las líneas `<<<<<<<', `=======' y `>>>>>>>') y dejamos el fichero de la siguiente forma:

 
  #include <stdlib.h> 
  #include <stdio.h> 
  int main(int argc, 
           char **argv) 
  { 
      init_scanner(); 
      parse(); 
      if (argc != 1) 
      { 
          fprintf(stderr, "tc: No args expected.\n"); 
          exit(1); 
      } 
      if (nerr == 0) 
          gencode(); 
      else 
          fprintf(stderr, "No code generated.\n"); 
      exit(nerr == 0 ? EXIT_SUCCESS : EXIT_FAILURE); 
  } 
Entonces ya podemos hacer el commit con tranquilidad.

 
$ cvs commit driver.c 
  Checking in driver.c; 
  /usr/local/cvsroot/yoyodyne/tc/driver.c,v  <--  driver.c 
  new revision: 1.7; previous revision: 1.6 
  done 

8. Cómo añadir y quitar ficheros del repositorio

Otros comandos útiles en CVS son los utilizados para añadir o quitar ficheros en el repositorio. Para añadir ficheros el comando utilizado es el add. Supongamos que queremos añadir el fichero holamundo.c al repositorio, entonces haremos:

 
$ cvs add holamundo.c 
$ cvs commit holamundo.c 
Es importante hacer un commit después de añadir un fichero, ya que sólo entonces se sube el fichero al servidor.

En el caso de que el fichero que vamos a añadir sea binario tendremos que incluir el modificador -kb a la línea de comandos. Un ejemplo:

 
$ cvs add -kb imagen.jpg 
$ cvs commit imagen.jpg 
Si lo que queremos hacer es quitar ficheros del repositorio el comando a utilizar es remove. De la misma forma tenemos que hacer un commit para reflejar los cambios en el repositorio.

 
$ cvs remove -f holamundo.c 
$ cvs commit 

9. Algunos comandos adicionales

Además de los que ya hemos comentado, existen otros comandos que pueden resultar útiles en determinadas ocasiones. A continuación comentaremos algunos de ellos:

  • login - Para autentificarnos en un servidor CVS remoto.
  • logout - Para dar por terminada la sesión en el servidor remoto.
  • status - Para observar el estado de un fichero en el repositorio.
  • history - Para ver el historial de un fichero.
  • release - Para revisar el estado de la copia local del repositorio y para borrar la copia local.

10. Acceso remoto al repositorio

Todo lo visto hasta ahora os habrá podido parecer útil o interesante, pero seguro que más de uno habrá pensado ya que si sólo se puede acceder al repositorio de manera local el sistema CVS está un poco limitado. Pues no os preocupéis, que CVS permite la posibilidad de acceso remoto. Vamos a explicar aquí una de las varias opciones que tenemos que es el acceso mediante el servidor de passwords o pserver.

Para poner en funcionamiento este método de acceso remoto usaremos los servicios del demonio inetd. Añadiremos en el fichero de configuración inetd.conf que normalmente está en el directorio /etc/ la siguiente línea:

 
cvspserver  stream  tcp  nowait  root 
/usr/local/bin/cvs cvs -f --allow-root=/var/cvs pserver 
Y en el fichero /etc/services añadiremos lo siguiente:

 
cvspserver      2401/tcp 
cvspserver      2401/udp 
A continuación tendremos que crear a mano un fichero llamado passwd en el directorio $CVSROOT/CVSROOT/. Este directorio deberá contener líneas del estilo del fichero /etc/passwd:

 
usuario:clave_encriptada 
Dado que CVS no proporciona ninguna herramienta para la creación de este fichero tendremos que echar mano de otras herramientas. La que suelo usar yo es htpasswd que viene con el apache. Para crear el fichero y añadir el usuario pepito haremos:

 
# cd $CVSROOT/CVSROOT/ 
# htpasswd -c passwd pepito 
Con lo que nos pedirá una contraseña y su confirmación y nos creará el fichero. Después rearrancamos el inetd y ya tenemos funcionando el acceso remoto.

 
# killall -HUP inetd 
Ahora ya podremos acceder remotamente a nuestro repositorio. Para ello tendremos que cambiar un poco la variable de entorno CVSROOT. Si queremos acceder a la máquina remota noesaqui.com con el usuario pepito usando el servidor pserver al repositorio situado en /var/cvs haremos:

 
$ export CVSROOT=:pserver:pepito@noesaqui.com:/var/cvs 
$ cvs login 
Entonces se nos pedirá la contraseña y se creará el fichero local .cvspass en el que se guardará la contraseña. De ahora en adelante podremos acceder al repositorio de la misma manera que si estuviéramos en la misma máquina.

Una cosa importante a tener en cuenta es que todos los usuarios que se autentifican mediante el pserver necesitan tener su usuario equivalente en la máquina. Esto es debido a que, cuando el usuario se haya autentificado, accederá a los ficheros del repositorio con los permisos que tenga ese usuario en el sistema.

Para evitar que tenga que definirse un usuario en la máquina por cada usuario de CVS se puede añadir un tercer campo al fichero de $CVSROOT/CVSROOT/passwd que indica el usuario con el que se accederá al repositorio. Así la estructura de las entradas en el fichero quedaría de la siguiente manera:

 
usuario_cvs:clave_encriptada:usuario_real

Así podremos crear, por ejemplo, un usuario llamado cvsuser y hacer que todos los usuarios que accedan a CVS lo hagan a través de este usuario genérico. Independizando así totalmente los usuarios de CVS de los usuarios de la máquina.


Imprimir
Version para
imprimir

Imprimir
Version
PDF
Comentarios
Es posible que se hayan omitido algunos comentarios considerados poco constructivos
1.  Re:Desarrollando en grupo con CVS (09/06/2001 01:25, #1552)
  Por: Beowulf (http://starkmad.yi.org:8888/)
Unos cuantos artículos más de esta calidad, y dentro de nada la gente estará pidiendo PostScripts o PDFs bonitos para imprimir...

Estos últimos dias he visto por aquí cosas muy interesantes, y esto del CVS es genial. Cuando tenga tiempo tendré que hacer algunos artículos buenos para ponerme a vuestro nivel, que en las estadísticas de autores todavia estoy viviendo de "rentas" del barrapuntazo O;-)
No es pot respondre
 
2.  Re:Desarrollando en grupo con CVS (13/06/2001 18:55, #1578)
  Por: w00g (http://www.oxhuge.com)
Felicito al autor de este documento, bucear por la extensa documentación es, tarde o temprano, inevitable.. pero a modo introductorio es de gran ayuda. Hace un tiempo tuve que configurar un repositorio cvs que tenía que soportar varios proyectos, algunos de los desarrolladores de un proyecto no acceder a otros, tenía que estar "chrootado" y transportar el tráfico mediante un túnel ssh... para ello utilizé <a href="http://www.google.com/search?q=cache:QpiitNdPbVc:www.prima.eu.org/tobez/cvs-howto.html&hl=es">éste documento</a>.. además, aunque no lo he probado, se puede utilizar <a href="http://cvsauth.sourceforge.net/">cvsauth</a>.. cvs es una herramienta excelente pero creo que es importante tener presente que, mal configurado, <a href="http://www.mail-archive.com/bug-cvs@gnu.org/msg00384.html">puede ser peligroso</a>.. espero que esto sirva a alguien.<br>
Saludos.- w00g
No es pot respondre
 
3.  Re:Desarrollando en grupo con CVS (14/06/2001 05:13, #1582)
  Por: fabiola
Hola. Me encuentro desarrollando algo similar a como trabaja cvs. En este caso debo de encontrar la manera de como realizar la actualizacion de un archivo modificado en todas las estaciones de trabajo y detectando cuando se acabo de editar un archivo. Tengo muchas dudas acerca de ello si alguien tiene alguna idea hagamelo saber a mi e-mail gracias.
No es pot respondre
 
4.  Escribiendo un comentario (15/06/2001 12:03, #1596)
  Por: Tarrio (http://tarrio.cjb.net)
Más ojo con los gerundios, joer. Que en inglés se usan más que en castellano.

"Installing foo" -> Instalación de fulano
"Configuring bar" -> Configuración de mengano
"Understanding fubar" -> Cómo entender zutano

¿Entendiendo? :-)
No es pot respondre
 
5.  Re:Escribiendo un comentario (15/06/2001 12:22, #1597)
  Por: Zebub
Sólo puntualizar que el artículo no está traducido, es original...
No es pot respondre
 
6.  Re:Escribiendo un comentario (03/04/2002 18:29, #5538)
  Por: El cobarde anónimo
El punto 7 por ejemplo es un calco de http://www.cvshome.org/docs/manual/cvs_10.html 10.3 Conflicts example Suppose revision 1.4 of `driver.c' contains this: #include void main() { parse(); if (nerr == 0) gencode(); else fprintf(stderr, "No code generated.\n"); exit(nerr == 0 ? 0 : 1); } Uno de los aspectos que mas cuestan a la hora de escribir un artículo original es definir la estructura del mismo. (qué se quiere decir) http://www.cvshome.org/docs/manual/cvs_toc.html 1. Overview 1.1 What is CVS? 2. The Repository 3.2 Defining the module 9. Handling binary files 10.3 Conflicts example (no será un resumen traducido??) Qué menos que unas referencias al final del articulo!!!
No es pot respondre
 
7.  Re:Desarrollando en grupo con CVS (15/06/2001 15:26, #1598)
  Por: gallir (http://m3d.uib.es/~gallir/)
No te preocupes Josep, siempre aparece un capullo que en vez de agradecer la ayuda desinteresada y gratuita, se cree que sabe todo y lo único que hace es criticar el trabajo, y de malas maneras (aunque pongan el smiley para disimular, y si le pegas una mirada a su página, tiene también muchos errores).

Pero es normal y parte del anecdotario. Sigue escribiendo, que es útil.
No es pot respondre
 
8.  Re:Escribiendo un comentario (15/06/2001 19:15, #1599)
  Por: Zebub
Gracias Ricardo, pero... desanimarme yo? Ni hablar! X"D

Si dejamos aparte las consideraciones sobre si el comentario tiene o no un tono adecuado pues igual tiene razón Tarrio y sobran gerundios. Me he fijado y la verdad es que hay bastantes.

Igual lo cambio y todo, pero eso si. El título se queda como está... ;D
No es pot respondre
 
9.  Re:Escribiendo un comentario (30/09/2003 00:06, #17305)
  Por: jessy
Hola, que tal, espero que seas el autor del "Desarrollando en grupos con CVS", y si no es asi espero me ayudes : ). Mi nombre en Jessica, mande un comentario a tu pagina por cierto, soy de México y estoy desarrolando un repositorio CVS y la verdad ya me estoy desesperando un poco, es un servidor Windows 2000 server y necesito crear usuarios y utilizar el protocolo pserver, mira estas son las paginas en que encontre y he hecho lo que viene: http://w1.858.telia.com/~u85831169/InstallCVSNT.html#InstallSteps -- en esta realice los pasos y todo salio bien hasta el paso nueve cuando metia la linea en donde hacia la conexion del pserver con el servidor, no me marco nada, pero cuando hice a crear los usuarios, simplemente me marco que el metodo de acceso :pserver: no esta instalado en el sistema, una de mis dudas es que si necesito bajar un archivo que contenga el protocolo pserver o como lo activo en cvs? http://www.devguy.com/fp/cfgmgmt/cvs/cvs_admin_nt.htm He estado buscando por todas partes y la verdad te agradeceria que me ayudaras con este problemita, que la verdad me esta sacando canas verdes, de ante mano muchas gracias ahhhhhh y mi correo es tareas_jessy@hotmail.com o jessyk@iespana.es confiando en tu calidad humana se despide de ti, Jessy.
No es pot respondre
 
10.  Re:Desarrollando en grupo con CVS (18/06/2001 15:32, #1627)
  Por: Tarrio (http://tarrio.cjb.net)
Muy tarde para contestar a esto, pero...

Mi intención no era hacer crítica destructiva; sólo ayudar a corregir algo que sin tanto gerundio queda mejor ;-)

Acerca de los errores de mi página: es posible, pero son *mis* errores :D Si me los dices, igual los corrijo y todo :D

Y sobre el tono de mi respuesta... claro, es que Ricardo no me conoce... oye, Javi, dile al Ricardo lo faltón que soy :D
No es pot respondre
 
11.  Re:Desarrollando en grupo con CVS (21/07/2006 18:54, #33870)
  Por: Anónimo
corrige tus errores y deja de decir tonterias ..
No es pot respondre
 
12.  Re:Desarrollando en grupo con CVS (18/06/2001 20:57, #1636)
  Por: gallir (http://m3d.uib.es/~gallir/)
> oye, Javi, dile al Ricardo lo faltón que soy :D

Tanto que ni estás en la lista ;-)
No es pot respondre
 
13.  Re:Desarrollando en grupo con CVS (02/07/2001 09:25, #1815)
  Por: fabiola
hola amigos quisiera saber de que forma puedo usar. CVS par que me detecte de forma automatica los cambios hechos a los archivos de los clientes de una red interna y se actualize en toda la red.. :-)
No es pot respondre
 
14.  Re:Desarrollando en grupo con CVS (02/07/2001 09:53, #1816)
  Por: gallir (http://m3d.uib.es/~gallir/)
Lo más fácil es ejecutar un "cvs update" o "cvs checkout" periódicamente en cada uno de los ordenadores de tu red interna.

Por ejemplo, los programas este web que estás viendo se actualiza "automáticamente" desde el CVS.

--ricardo
No es pot respondre
 
15.  Re: Desarrollando en grupo con CVS (23/07/2001 10:50, #2084)
  Por: DaniRC (http://www.prosystems-ibiza.com/ibizaprogramacion)
Genial :) la de trabajo que me acabas de ahorrar. Gracias!
No es pot respondre
 
16.  Desarrollando en grupo con CVS (16/11/2001 15:00, #3334)
  Por: David
Enhorabuena por el documento. Sinceramente lo considero muy didáctico y muy práctico y las dudas que os planteo no son porque no esté claro sino más bien por mi total desconocimiento en el control de versiones (disculpad si mis dudas son muy tontas). Hay algunas cosas que no tengo claras y os agradecería que me lo aclararais. ¿El ensamblado lo hace siempre? ¿En realidad no estás machacando el trabajo de las 2 ó n personas que lo hayan subido? Porque el ejemplo del documento no me vale ( es un fuente pequeño,los cambios no son muy importantes)?. Gracias y os animo a seguir en esta línea
No es pot respondre
 
17.  Re: Desarrollando en grupo con CVS (13/02/2002 20:00, #4810)
  Por: KRuSHaDeR
mu wapo esta doc xDD ma solucionado mis quebraderos de cabeza i si era factible lo del CVS xD
No es pot respondre
 
18.  Re: Desarrollando en grupo con CVS (30/05/2002 00:04, #6439)
  Por: El cobarde anónimo
Muy interesante el artículo. Lo he puesto en marcha y funciona muy bien. El único problema lo solucioné utilizando la versión 1.11.2 en vez de la 1.11, pero por lo demás estupendo.

Tengo una pregunta que no he encontrado cómo solucionar. Comentas que haciendo > marcas a los ficheros .png como binarios, pero: ¿Cómo hago para añadir más tipos? y una pregunta más importante: ¿Cómo se cambia el flag de binario a un fichero o grupo de ficheros una vez ya se encuentran en el CVS?

Gracias. Un saludo.
No es pot respondre
 
19.  Re: Desarrollando en grupo con CVS (30/05/2002 00:07, #6440)
  Por: El cobarde anónimo
Soy el de antes.. que no ha salido bien parte de la frase... donde pone: Comentas que haciendo..
Tiene que poner cvs import -W "*.png -k 'b'" pruebacvs gnu inicio

A ver si sale ahora.
No es pot respondre
 
20.  Re: Desarrollando en grupo con CVS (30/05/2002 07:29, #6445)
  Por: Zebub
Para añadir más tipos de ficheros para que los trate como binarios durante una importación símplemente tienes que añadir más opciones como esa. Por ejemplo, si además de .png tienes .jpg el ejemplo quedaría de la siguiente forma:
cvs import -W "*.png -k 'b'" -W "*.jpg -k 'b'" pruebacvs gnu inicio

Respecto a eso que comentas de cambiar el tipo de fichero a binario una vez lo has importado... Yo no creo que sea una buena idea. Ten en cuenta que ya lo habrás importado como fichero de texto y que el fichero puede haber sufrido cambios durante la importación (Ver punto 5).
Aunque supongo que si cambias el tipo de fichero a binario y lo vuelves a subir te funcionará... Prueba esto a ver:
cvs admin -kb fichero.png
cvs update fichero.png
cp fichero_bueno.png fichero.png
cvs commit fichero.png
Con esto lo que pretendo es cambiar el tipo a binario, sobreescribir el fichero con una copia buena para asegurar que el fichero no tiene cambios y hacer un commit para ponerlo en el repositorio.
No es pot respondre
 
21.  Implementacion de CVS (10/03/2003 20:58, #12734)
  Por: Hugo Di Tiero
Estoy implementando CVSNT en una red de WindowsNT con protocolo PSERVER. Me he convertido en administrador creando los archivos Admin y Password. Al momento de realizar un IMPORT al repositorio y generar un proyecto, en el mismo me genera el archivo .OWNER pero no me genera el archivo .PERMS por lo que no puedo restringir el acceso al proyecto. No se cuendo se deberia generar el archivo .PERMS, tampoco puedo realizar un CHACL para modificar los permisos. Podrían Uds. ayudarme?
No es pot respondre
 
22.  Re: Desarrollando en grupo con CVS (29/09/2003 23:33, #17304)
  Por: Jessy
Hola, estoy crando un repositorio en CVSNT (windows 200 server) y con el protocolo pserver, la cosa esta asi: ya esta configurado CVSNT y creados los archivos passwd y admin pero cuando quiero crear usuarios me indica que el pserver no esta instalado en el sistema, y ya me estanque, alguien podria decirme donde encontrar mas documentacion de pserver y como solucionar este problema o que estoy haciendo mal. Por favor ya no se donde mas buscar. Gracias :)
No es pot respondre
 
23.  Re: Desarrollando en grupo con CVS, y CVSNT y WINCVS (09/06/2004 12:43, #21823)
  Por: Javi
Llevo tiempo intentando usar CVSNT(Servidor) y WINCVS(Cliente), pero no lo consigo. Con TortoiseCVS puedo hacer, con un make new Module..., un CVSROOT que después me deja ver WINCVS y desde el que puedo trabajar en local. Lo que intento hacer es un repositorio en un servidor para que podamos acceder dos o tres personas desde nuestra red local... Si alguien consigue algún manual o sabe el procedimiento a seguir, agradecería que nos echase una mano. Mil gracias. En cuanto sepa algo, lo pondré por aquí.
No es pot respondre
 
24.  ES MAS BIEN UNA PREGUNTA (17/04/2004 19:39, #20730)
  Por: afm2001
Quisiera saber si puedo utilizar CVS para cualquier proyecto, me rifiero a si soporta desarrollo de video, audio y animacion? Cualquier ayuda muchas gracias 8-)
No es pot respondre
 
25.  Re: Desarrollando en grupo con CVS (18/06/2004 08:34, #21969)
  Por: Javi
Ya lo tengo! He hecho un minimanual muy sencillito con el que se consigue montar un sistema de control de versiones con winCvs en una red local. Si alguien lo quiere y tiene emule puesto, que busque "minimanual winCVS". Y si no que me escriba un mail. Saludos! 18-6-2004
No es pot respondre
 
26.  Re: Desarrollando en grupo con CVS (19/07/2004 15:59, #22449)
  Por: Anónimo
Estoy tratando de usar el wincvs con una red NT, pero no logro conectarme al servidor. Si alguien tiene un manual sencillo, agradecería me lo envíe a daniel_devalle@hotmail.com Muchas gracias
No es pot respondre
 
27.  Re: Desarrollando en grupo con CVS (17/01/2006 10:30, #30555)
  Por: Anónimo
Hola. Por favor puedes enviareme el manual a mi direccion galitoalfredo@gmail.com o galitoalfredo@hotmail.com, te lo agradeceria mucho, lo necesito de urgencia... muchas gracias anticipadas.
No es pot respondre
 
28.  Re: Desarrollando en grupo con CVS (07/06/2005 12:54, #27025)
  Por: sexus6 (http://www.cinenautas.com)
Hola. He leído este interesante artículo. Mi comentario va por un tema adyacente a esto. En sourceforge, recomiendan para usuarios windows que quieran participar en proyectos libres, usar TortoiseCVS el soft que ha comentado un usuario del que querria llegar a poder utilizar. Yo he llegado a utilizarlo pero me gustaria comentar como SourceForge puede recomendar dicho cliente, cuando en mi opinion tiene una de las más grandes faltas de un cliente CVS. Bueno, no se si es una falta, o una ignorantez mia, el caso es que me he vuelto loco durante dos dias leyendome una y otra vez la documentación sobre el tema (no demasiado amplia).... El caso es que si quiero tanto montar un control de versiones o participar en uno ya montado, lo mas logico es que la primera vez que hago un update se me baje todo fichero que forma parte del proyecto no? Seria lo logico? Asi creo que es como trabajan WinCvs y muchos otros clientes. PEro TortoiseCVS que yo sepa no puede hacer esto (o yo despues de mucho leer documentacion y una lista de correo abominable de 5000 mensajes no lo he encontrado). Solo he conseguido poner manualmente en el sitio local del cliente los ficheros del proyecto, para más tarde cotejarlos con los de arriba y empezar el trabajo del proyecto... Existe dicha funcion en tortoiseCVS? Si no es asi...no pensais que es una función bastante básica como para que no este? Un saludo
No es pot respondre
 
29.  Re: Desarrollando en grupo con CVS (17/06/2005 23:05, #27161)
  Por: Mary
Hola como estan? les cuento lo que paso elimine un archivo conectado en cvs y que estaba en conficto y ahora no puedo crear uno con el mismo nombre. que opinan????? como puedo hacer!!!!
No es pot respondre
 
30.  Re: Desarrollando en grupo con CVS (11/10/2005 19:58, #28842)
  Por: Graciela
Por favor me podrian ayudar con informacion acerca de como acceder a un epositorio remoto pero usando cvsnt y wincvs en windows les agradezco mucho saludos Graciela
No es pot respondre
 
31.  Re: Desarrollando en grupo con CVS (25/04/2006 17:36, #32202)
  Por: Wally
Hola, mi consulta es la siguiente, en el lugar donde trabajo estamos usando actualmente wincvs 1.3 y queres migrar a wincvs 2.0... Mi duda es la siguiente, cuales son las ventajas y las desventajas de migrar, que requerimientos necesito, q version de phyton usaria con esta nuevas version y si es necesario algun otro nuevo sistemas, desde ya muchas gracias, espero ayuda de ustedes. Chau y gracias. Wally.
No es pot respondre
 
32.  Re: Desarrollando en grupo con CVS (19/05/2006 09:27, #32632)
  Por: David
Hola a todos. En primer lugar deciros que me ha encantado encontrar un sitio de estas caracteristicas en castellano (mi nivel de ingles no es demasiado bueno) y en segundo lugar que esta es la primera vez que me enfrento a un producto de estas caracteristicas (winCVS 2.0 en mi caso) Me estoy encontrando un problemilla que es que cuando intento hacer un commit de un fichero que he modificado yo, el mu ... me da un error diciendome lo siguiente: user 'dconesa' is not a valid editor of the file 'Updates_3_4.sql'. Yo antes de hacer el commit he hecho un update de ese fichero como me habian indicado, pero no hay manera Alguien podria darme una indicación de por donde van los tiros, y que error es el que debo estar cometiendo. Hos agradezco de antemano la ayuda que me podais prestar, muchas gracias
No es pot respondre
 
33.  Re: Desarrollando en grupo con CVS (04/08/2006 22:56, #34164)
  Por: andrezzs
Hola a todos uds que participan en proyectos cvs.
Yo he instalado ya el cvs en una maquina debian sarge, un profe me lo pidio de tarea y yo lo hice, mi repositorio esta en /var/cvs y all'i dentro he colocado algunas carpetas una de un proyecto mio que contiene codigo fuente y otra de mi profesor he creado un usuario con privilegios de escritura y lectura en si es un administrador del cvs.

Mi problema consiste es que quiero crear un nuevo modulo y adentro de este 3 submodulos más por ejemplo grupo1, grupo2 y grupo 3 cada uno de ellos quiero asignarle un user y pass para que puean acceder a esos modulos solamente y que no tengan acceso a los demás modulos pues tengo informacion que no quiero que pueda bajarse o verse...

Alguien que me pueda orientar o ayudar se lo agradecería
saludos espero alguna respuesta porfa

Andrezzs
Chile
No es pot respondre
 
GRACIAS
Distribuciones Universal
Por el servidor
Dpto. de Matematicas e Informatica
Calificacion
****
Vots: 22
Danos tu opinion:
**** Excelente
***0 Muy Bueno
**00 Bueno
*000 Regular
0000 Malo
Relacionados
. Acceso CVS anónimo a Bulma
. Acceso CVS de Bulma
. Consejos para administrar CVS
. Desarrollo Web Extremo
. Libros libres de CVS y de SAMBA
SECCIONES
Noticia
Breve
Truco
Enlace
Participa
Proyecto
Articulo
Webbulma
Manoletada :-)
Seguridad
Modificado: 29/6/2009 05:59:21 | Tiempo Total: 0.066 segs | Kernel: Linux - i686 - 2.6.26-2-686 | Last boot: too much time ago!!
Powered by Apache    MySQL    PHP    Gimp