El control de versiones Bazaar
Al programar es normal añadir nuevas funciones y modificar el código fuente. En el mejor de los casos se guarda una copia del archivo con otro nombre aunque en la mayoría de las ocasiones se usa una única copia de trabajo. Esta forma de trabajar es práctica pero al mismo tiempo es un suicidio seguirla.
Supongamos que la aplicación tiene un archivo con el código fuente, por ejemplo un layout de QML. Se hacen una serie de modificaciones y se guarda el archivo para continuar otro día. El día siguiente al revisar el código aparece un error importante que obliga a deshacer todas las modificaciones. Como el archivo esta guardado no se puede usar la función de deshacer del editor. Afortunadamente hay varias copias de seguridad de las últimas semanas. Ahora la duda es, ¿qué copia del archivo es la correcta para recuperar la información perdida?
Todos estos problemas tienen una solución sencilla que se usa en cualquier proyecto serio y es usar software de control de versiones. Este software permite apuntar (commits) los cambios que se han hecho sobre un archivo, guardar una copia centralizada en el servidor (push) e incluso crear ramas de trabajo en paralelo. Por ejemplo, hemos programado una aplicación que ya ha llegado a los usuarios. Al mismo tiempo continúa el desarrollo de una nueva versión con nuevas funciones. Los usuarios encuentran fallos y es necesario arreglarlos pero al mismo tiempo no interesa publicar el código de la versión nueva. En este escenario habría dos ramas: una rama estable, que es la que tienen los usuarios y una rama de desarrollo que es la versión nueva.
Hay varios gestores de control de versiones: Git, Bazaar, Mercurial o entre otros Subversión. Cada uno tiene sus ventajas e inconvenientes. Para el curso usaré Bazaar como control de versiones. La forma más sencilla de conocer Bazaar es empezar a usarlo (y leer también un poco de documentación).
El primer paso es descargar el código fuente del curso. Para hacerlo es necesario abrir un terminal (ALT+F2 y escribir gnome-terminal). Os recomiendo crear la carpeta dentro de Documentos, Proyectos para que esté todo un poco más organizado.
cd Documentos
mkdir Proyectos
cd Proyectos
Para descargar el código se utiliza el siguiente comando (recordad que es válido sólo para Bazaar)
bzr branch lp:curso-ubuntu-phone-touch
En la pantalla Bazaar nos indica que es necesario configurar la información del usuario para subir el código a LaunchPad. LaunchPad es una Web relacionada con Ubuntu que permite al usuario subir el código fuente de sus proyectos así como crear repositorios privados de software (los repositorios PPA). No es obligatorio subir el código fuente a LaunchPad para usar Bazaar pero si es recomendable tener una copia de seguridad en un disco externo al ordenador. Si el ordenador muere es importante poder recuperar la información.
Se puede configurar Bazaar con el comando:
bzr whoami "Nombre Apellidos <[email protected]>"
Esta modificación afecta al uso de Bazaar en la consola. Es posible hacer lo mismo en el entorno de programación. Después de abrir la aplicación hay que pulsar en Tools, Version Control, Bazaar.
Hay que rellenar los campos Default username y Default Email con los mismos datos que se han puesto antes en la consola. Cerrad la ventana pulsando en el botón Ok y modificar un archivo del proyecto de la WebApp, por ejemplo el archivo WebApp.desktop.
Al pulsar ALT+Z y ALT+C se abre la ventana para hacer un commit. Esta ventana es importante y os cansaréis de usarla. En la parte izquierda hay varios campos para introducir la información del commit. Un commit sería similar a una fotografía del código fuente en el momento que se realiza. Si se detecta más adelante un error es posible volver atrás e incluso ver las diferencias que hay entre el código que provoca el error y el código del commit.
Fixed bugs se utiliza para indicar los bugs que arregla el commit. En paralelo al control de versiones hay también aplicaciones que permiten gestionar los bugs. Permiten a los usuarios reportar los fallos que encuentran y añadir la información necesaria para replicar el fallo. Con esa información el programador trabaja y cuando arregla el bug aplica un parche que lo corrige en el código. De momento no es necesario rellenar ese campo.
El último campo que queda en la parte izquierda es Description (descripción) y se usa para escribir un breve resumen de los cambios que se han hecho. Es muy importante que sea descriptivo y no poner cosas genéricas del tipo ". En la parte derecha aparecen los archivos que tienen modificaciones. El botón Commit permite guardar los cambios introducidos. Después el siguiente paso sería subir el código (Push). Dependiendo de si el control de versiones está en local o en un servidor los siguientes pasos varían.
Con este punto finalizo esta pequeña introducción a Bazaar. No he entrado en detalle para no desviar demasiado la temática del curso. Podéis preguntar las dudas relacionadas con Bazaar en los recursos del curso.