Son varios los artículos que he ido publicando sobre buenas prácticas con Xojo, pero probablemente uno de los que deberías de aplicar antes de cualquier otro sería el de aplicar un sistema de control de versiones a tu código, especialmente si tus proyectos involucran a varios desarrolladores, pero también igualmente aplicable en el caso de que seas el único desarrollador de tus proyectos. Y actualmente, cuando se habla de control de versiones de código, no cabe duda de que la opción más recomendable es Git.
¿Por qué es tan importante? Por muchos motivos, como por ejemplo la capacidad de crear diferentes ramas de un mismo proyecto y poder cambiar de una a otra en función de las necesidades, como es mantener una versión de release y crear una rama diferente para aplicar una nueva característica; o bien para revertir a un estado anterior de un archivo del proyecto tras comprobar que los cambios realizados no proporcionan el comportamiento esperado.
Igualmente, podríamos crear una rama temporal en la cual incorporar la solución a un bug reportado por el usuario sin alterar por ello los archivos correspondientes al trabajo de la próxima versión. Todo lo que habrá que hacer será, finalmente, combinar la rama de la nueva característica y la que aporta la solución al bug, y ¡listo!
Además, una de las enormes ventajas de Git es que todo ello lo realiza de forma local sobre la carpeta y disco duro empleados para almacenar tus proyectos. Es decir, no requieres de ninguna infraestructura adicional o la necesidad imperiosa de trabajar con un servidor, ya sea este local o bien remoto.
Por otro lado, el uso de Git también me resulta fundamental teniendo en cuenta mi causística personal. Me muevo con bastante frecuencia utilizando el portátil, de modo que llevo en él aquellos proyectos de clientes en los que estoy trabajando en cada momento, y el hecho de utilizar un sistema de control de versiones me asegura de que estoy trabajando siempre con las mismas versiones de los archivos de los proyectos (léase código), cuando dejo el portátil para utilizar el ordenador de sobremesa. En este caso, eso sí, utilizo un servicio de alojamiento remoto para los proyectos, y la ventaja es que se pueden encontrar muchos gratuitos para Git, incluso para crear repositorios privados. Entre otros puedes encontrar BitBucket o GitLab como las principales opciones.
Soporte de control de versiones en Xojo
Lo único que necesitas para comenzar a utilizar Git con Xojo, o bien cualquier otro sistema de control de versiones, es cambiar el formato de archivo de proyecto utilizado por omisión en las Preferencias del IDE a la opción Text
(texto) bajo el apartado General
. Esta capacidad está disponible en las ediciones Desktop, iOS, Web, Pro y Enterprise. Si tienes una licencia Desktop Lite… te recomiendo que la mejores como mínimo a Desktop y comiences a utilizar el versionado de código.
Ahora bien, el hecho de elegir el formato de texto para los archivos generados por los proyectos de Xojo es sólo la parte inicial del proceso.
Tanto si en tu equipo tienes Git instalado de serie, como si has de instalarlo desde cero (o bien quieres actualizarlo a una versión superior), lo más probable es que prefieras utilizar una aplicación gráfica en vez de la línea de comandos. Para ello puedes optar por cualquiera de las múltiples aplicaciones disponibles y que facilitan todas las operaciones mediante el uso de una interfaz gráfica de usuario (GUI). Puedes encontrar una buena colección de aplicaciones para macOS, Windows y Linux en esta sección de la web de Git, si bien uno de los más empleados, y también recomendables es el gratuito SourceTree que está disponible tanto para Windows como para macOS.
Con Git instalado en tu equipo y, opcionalmente, el uso de una app cliente para su gestión de forma gráfica, ya tendrás todo lo necesario para comenzar a versionar el código de tus proyectos mediante la creación de los correspondientes repositorios.
Crear repositorios Git
Si quieres comenzar a aplicar el versionado de código a tus proyectos utilizando un cliente GUI en local (es decir, sin usar repositorios en servidores remotos o en tu red local), todo lo que tendrás que hacer con la inmensa mayoría de las aplicaciones es arrastrar la carpeta que contiene el proyecto en cuestión sobre la ventana del cliente GUI. Si por el contrario prefieres utilizar la línea de comandos, tampoco es que sea mucho más complejo.
Lo primero consiste en indicar a Git quién eres (nombre y dirección de correo electrónico), dado que utilizará esta información cada vez que grabes o registres los cambios efectuados en tu código (generando por tanto una nueva versión). Todos los clientes Git te solicitarán dicha información, mientras que desde el Terminal, has de introducir los siguientes comandos:
$ git config --global user.name "Tu Nombre"
$ git config --global user.email tu@email.com
Una vez realizado lo anterior, ya estarás en disposición de crear tu primer repositorio Git con los siguientes comandos:
- Accede al Terminal para utilizar la línea de comandos.
- Cambia al directorio que contiene tu proyecto Xojo; por ejemplo,
cd ruta/a/mi/proyectoXojo
. - Una vez en el directorio del proyecto (puedes comprobarlo utilizando el comando
pwd
), introduce el comando:git init
. - A continuación añadiremos todos los archivos al índice del repositorio utilizando el comando:
git add .
(observa el punto final que indica “todo”), para que Git comience a realizar el trazado de cambios sobre cada uno de ellos. - Y por último grabaríamos nuestro primer estado del código mediante el uso del comando
commit
.
Excluir determinados archivos
Es bastante probable que no quieras realizar un control de versiones sobre determinados archivos, como puedan ser la carpeta Builds junto con los correspondientes ejecutables resultantes de la compilación, el archivo encargado de guardar los ajustes de estado del IDE de Xojo o bien los archivos ocultos generaods por algunos sistemas operativos, como pueden ser los archivos .DS_Store de macOS.
Para ello sólo hemos de generar un archivo de texto que contenga en cada línea el archivo o patrón de archivos a excluir, y guardarlo en la misma carpeta de proyecto con el nombre .gitignore
. Por ejemplo, estos serían unos buenos candidatos:
Builds*.xojoproject
*.xojouistate
Ten en cuenta que también puedes aplicar una exclusión de archivos de forma global en Git, en vez de hacerlo por cada uno de los proyectos. En tal caso, puedes hacerlo introduciendo el siguiente comando:
git config --global core.excludesfile ~/.gitignoreglobal
Teniendo en cuenta que ~/.gitignoreglobal
apuntaría al archivo de texto .gitignoreglobal
creado previamente, cuyo contenido se corresponde con las exclusiones, y que está almacenado en el directorio raíz de tu carpeta de usuario.
Listo para continuar… ¡seguro!
A partir de este momento, puedes continuar utilizando Git desde la línea de comandos (git –help`) te será de ayuda para ver todas las opciones disponibles, o bien SourceTree o cualquier otro cliente gráfico para ver de forma más visual los archivos modificados y actuar sobre ellos, ya sea registrándolos sobre la rama principal de trabajo, descartando los cambios, volver a una versión anterior del archivos, creando nuevas ramas de trabajo, combinarlas… En fin, trabajar con tus proyectos con mayor seguridad, flexibilidad y también la certeza de que siempre lo harás sobre la misma versión de los archivos cuando utilices más de un ordenador o formes parte de un equipo de desarrollo.
Una vez que empieces con Git… ¡No querrás volver atrás!