Desarrollo colaborativo con Subversión y Netbeans
Índice de contenido Introducción.................................................................................................................................3 Previas........................................................................................................................................4 Paso 1 Obtener el código fuente................................................................................................5 Paso 2 trabajar con el código.....................................................................................................7 Paso 3 Enviar los cambios..........................................................................................................9
Introducción Esta pequeña guía surge a raíz de algunas preguntas en uno de los proyectos que estoy llevando a cabo. Lo mas importante del versionamiento es que permite tener un control eficiente de código fuente; en pocas palabras posibilita que varias personas trabajen en el mismo proyecto de forma simultanea. No es mi intención plantear una comparativa entre versionadores, ni hablar sobre todas sus características; sino lo que pretendo es hacer una guía realmente rápida para su utilización y puesta en marcha para unirse a algún grupo de desarrollo.
Previas Subversión es un sistema del tipo cliente-servidor. Un servidor es un repositorio (entiéndase como centro de almacenamiento si se prefiere) en el cual se almacena el código fuente de un sistema o programa, de modo que los clientes puedan acceder a este código almacenado. Cuando digo acceder me refiero a que un cliente podrá ver el código, acceder al mismo (descargarlo a su máquina) y en el caso de tener permisos podrá enviar código modificado nuevamente al servidor para que el resto de las personas tengan acceso a dichas modificaciones (Notan la influencia de las cuatro libertades??). Estas son las características que utilizaremos con mayor frecuencia en un proyecto. 1. Versionado: El controlador de versiones administra los cambios aplicados a cada archivo, así como también tiene un histórico de estos cambios; esto significa que el versionador es capaz de recordar las modificaciones que se hicieron en los diferentes archivos. La principal utilidad de esto es que el versionador al saber que cambios se realizaron en un archivo, tiene también la capacidad de revertir estos cambios, o brindar información referente a cada cambio realizado. 2. Control de Concurrencia: esto quiere decir que muchas personas pueden trabajar sobre el mismo archivo sin que uno solape los cambios que realizo el anterior de tal forma que al momento de subir los cambios al servidor (esta acción se la conoce como commit) si el mismo archivo fue modificado por otra persona obtendremos una advertencia de esto y podremos elegir entre sobrescribir lo que alguien hizo o realizar una combinación de código (esta acción se la conoce como merge) de modo que finalmente el cambio de ambas personas persista en el archivo. Subversión tiene una gran cantidad de características que se irán descubriendo conforme se trabaje con algún proyecto. mi objetivo en esta ocasión se resume en: Obtener el código fuente, realizar una modificación y finalmente enviar el cambio realizado para que el mismo este disponible por el resto del grupo de desarrollo.
Paso 1 Obtener el código fuente Para obtener el código fuente es necesario conocer 2 elementos fundamentales. El repositorio(repositorio es el termino común con el que se conoce al servidor de versiones) del código y los datos de acceso. Es importante mencionar que muchos servidores presentan accesos anónimos, sin embargo estos están restringidos a solo descargar código, como es el caso de google-code que permite descarga anónima; sin embargo para poder registrar un cambio se necesita tener un googleid y ademas ser miembro del equipo de desarrollo del proyecto. Desde el menú principal de NetBeans seleccionamos Versioning->Subversion>Checkout En la nueva ventana se introduce la dirección de un proyecto de código fuente en el campo Repository URL; en el caso del ejemplo : http://suane.googlecode.com/svn/trunk/
en los campos inferiores se puede ver el usuario y el password, en caso de tener una cuenta debes añadirla, caso contrario para conectarte de forma anónima simplemente debes dejar estos campos vacíos. y presionar next .
Después de verificar la ruta y establecer conexión con el servidor se muestra la siguiente pantalla
En esta pantalla se puede elegir una carpeta en especifico, pero esto requiere algo mas de conocimientos, por lo general dejamos en el que encuentra por defecto. Más abajo nos pide especificar la localización en la que se almacenara la copia local, navegamos hasta la carpeta donde queramos descargar el proyecto; después de seleccionar una localización hacemos click en el botón finalizar para terminar. Acto seguido se inicia la descarga del proyecto. En el caso del ejemplo, el proyecto también a sido creado con NetBeans podemos hacer click en el cuadro “Scan for NetBeans proyect” para que el editor lo reconozca inmediatamente
Paso 2 trabajar con el código Una vez descargado el proyecto NetBeans buscara automáticamente un archivo de construcción de proyecto, al ser este un proyecto enteramente creado con NetBeans se tiene una buena integración por lo que solo queda abrir el proyecto.
En la sección de proyectos se puede apreciar los archivos que se descargaron, estos tienen diferentes iconos el de color azul expresa que la carpeta contiene un elemento que a sido modificado en la copia local. Los archivos en color verde representan elementos que han sido creados en la copia local y no han sido subidos al servidor El nombre del archivo con color rojo quiere decir que a surgido un conflicto entre versiones (esto quiere decir que el versionador a encontrado una sobre escritura que no puede corregir correctamente)
Cuando se abre el proyecto en el editor, en el lado izquierdo se muestra que se han añadido filas de código en la versión local con un marco en color verde, se muestra un indicador rojo cuando se han eliminado filas respecto a la versión que esta ene el servidor y se muestra azul cuando se realizado un cambio es una fila.
Para obtener una copia reciente del proyecto es necesario hacer clic derecho sobre el proyecto -> subversión-> update Hecho esto se inicia una verificación de versiones y en caso de ser necesario se descargará una versión mas reciente.
Paso 3 Enviar los cambios Una vez que se han realizado cambios es importante ponerlos a disposición publica enviándolos nuevamente al servidor. Para hacer esto simplemente se hace clic derecho sobre el proyecto y se selecciona commit de esta forma se envían los cambios al servidor de forma muy sencilla. Una buena practica es siempre hacer update (actualizarse el proyecto) antes de realizar un commit .