miércoles, 22 de julio de 2009

Creando un sistema de verciones con CVS. (introducción)

El programar es algo que me entretiene mucho y que trato de compartir con ustedes desde este blog. Pero la verdad es que me pongo a hacerle cada cosa que luego de tener una versión estable y funcional, termino teniendo una cosa que no tiene ni pies ni cabeza, por lo que los errores son cosa de todos los días y que podíamos estar guardando bajo un nombre diferente cada versión estable para poder regresar a ella en caso de una catástrofe.

Pero eso es verdaderamente tedioso, normalmente no lo hacemos y cuando nos acordamos, es demasiado tarde para que podamos dar vuelta atrás.

CVS (Concurrent Versións System) es una aplicación que permite la implementación de un sistema de verciones, manteniendo el registro de todo el trabajo y los cambios a un archivo. Permitiendo a demás, que distintos desarrolladores puedan tener acceso y trabajen de forma ordenada y sincronizada.

Creando el repositorio.

En modo de super usuario (De preferente estar en la cuenta y no por medio de sudo o el comando su) desde la linea de comandos teclea:

[root@Developer]#cvs -d /home/Sugizo/Public/cvsroot init

El directorio '/home/Sugizo/Public/cvsroot' es donde nuestro repositorio de fuentes se encontrará. Yo recomiendo que crees un grupo para acceder a este repositorio, algo así como cvs, develop, o cualquier cosa que se te ocurra. Y para crear un grupo desde la línea de comandos:

groupadd [-g group_id [-o]] [-r] [-f] nombre_del_grupo

Donde -g especifica el Id del grupo que debe ser un valor único y es mayor a 500. Si decides usar -o, el valor se acignara automaticamente y no será necesario poner -g.

-r, especifica al sistema que el id debe estar por debajo de 499. Cosa que yo no recomiendo, ya que todo por debajo de 499 sin id para el sistema.

-f le indica que cree el grupo a la fuerza y que oblige al sistema a no dar error en dado caso que pueda generar uno y no crearlo.

[root@Developer]#groupadd -g 503 developers_cvs

Cambiamos el repositorio de grupo root a developers_cvs con chown

[root@Developer]#chown -r root:developers_cvs /home/Sugizo/Public/cvsroot

Y agregamos el usuario al grupo con el comando usermod, donde el parametro -G, agrega grupos al usuario (usermod [-G grupo, grupo2, ...] usr)

[root@Developer]#usermod -G developers_cvs Sugizo

O puedes editar directamente '/etc/group' donde cada linea se compone de:
'nombre del grupo':'passwd del grupo':'id del grupo':'miembros del grupo'
El password no es obligatorio, por lo que puedes dejarlo en blanco.

Por último, cambia los permisos de '/home/Sugizo/Public/cvsroot' con el comando chmod

[root@Developer]#chmod -R 750 /home/Sugizo/Public/cvsroot

Con ello, todos los que esten el el grupo podrán escribir en el repositorio y leer de el.

Mas adelante hablaremos de como manejar cvs desde la linea de comandos, eclipse y Cervisia.