Control de versiones en Bitbucket

Impactos: 8630

Para cualquier desarrollo o proyecto TI es muy recomendable el uso de un sistema de gestión de versiones de ficheros. Incluso si trabajamos solos, imprescindible para el trabajo en equipo, especialmente si este está distribuido geográficamente.

Para llaneros solitarios o pequeños equipos es muy costoso en tiempo y dedicación disponer de su propio servidor de repositorios, siendo mas recomendable la opción de utilizar los servicios de empresas que proporcionan repositorios listos para utilizar, sin preocuparnos de tener que securizarlos o realizar copias de seguridad y, en muchos casos, de forma totalmente gratuita.

Bitbucket es uno de estos servicios. Lo proporciona la afamada empresa Atlassian, creadores del excelente Jira, otra herramienta imprescindible para cualquier equipo de desarrollo de más de una persona, de la que ya hablaremos en otro artículo. Ofrece ilimitados repositorios Git o Mercurial sin límite de tamaño, eso sí, limitado a un máximo de 5 usuarios cada uno. Existe la posibilidad de contratar más usuarios para equipos más grandes, pero ya mediante pago, o sin limitaciones para desarrollos de código abierto.

El primer paso para poder crear nuestro primer repositorio es darnos de alta en Bitbucket y acceder a nuestra cuenta.

bitbucket-login.png

Una vez dentro seleccionamos “Crear” un nuevo repositorio. Imprescindible introducir un nombre al repositorio. Los demás campos son opcionales pero recomendados.

bitbucket-new-repository.png

Podemos seleccionar el tipo de repositorio, Git o Mercurial. En la práctica son idénticos así que seleccionamos aquel con el que nos sintamos mas cómodos. Para novatos Mercurial parece más intuitivo, pero con herramientas como TortoiseGIT / TortoiseHg y el soporte integrado en los IDEs es totalmente transparente el uso de uno u otro.

bitbucket-repository-setup.png

Una vez creado podemos comenzar a trabajar con él. La primera tarea es clonar el repositorio en una copia local, que será la de trabajo.

Iniciamos NetBeans. Una vez en la pantalla principal seleccionamos “Team-Git-Clone” para clonar (hacer una copia local) un repositorio (Git en este ejemplo, para Mercurial o Subversion el proceso es análogo)

netbeans-clone.png

Nos solicitará los datos de conexión a un repositorio Git, en la pantalla principal del repositorio en Bitbucket (pestaña dashboard) se proporcionan todos los datos necesarios. Básicamente son los datos de acceso al repositorio y el directorio local de trabajo donde deseamos hacer la copia.

netbeans-clone-source.png

En el caso que el repositorio dispusiese de varias ramas seleccionamos aquella que deseamos copiar. En nuestro ejemplo el repositorio está vacío por lo que no nos aparece ninguna.

netbeans-clone-branches.png

Finalmente configuramos la copia local

netbeans-clone-destination.png

En caso que ya existiesen ficheros en el repositorio podemos indicarle a NetBeans que importe automáticamente los proyectos que hubiese en el mismo.

netbeans-open-cloned.png

Debido a que nuestro repositorio está vacío nos aparece la pantalla de proyectos de NetBeans vacía.

netbeans-main.png

Procedemos a crear un nuevo proyecto PHP que añadiremos al repositorio para llevar un control de versionado de los ficheros del mismo.

netbeans-create-php-project.png

Seleccionamos como directorio del proyecto el directorio donde hemos clonado el repositorio

netbeans-project-location.png

Tras crear el proyecto y añadir unos cuantos ficheros comprobamos que aparecen unos iconos en los directorios y los nuevos ficheros son de color verde. Esto indica que son nuevos, pero aun no han sido añadidos al repositorio

netbeans-project-sources.png

Primero añadimos los ficheros a la copia local del repositorio para empezar a llevar un control de versionado de los mismos mediante el menú contextual “Git-Add

netbeans-add-git-files.png

Para hacer efectivas las modificaciones al repositorio es necesario confirmar los cambios locales (commit) mediante la opción del menú contextual “Git-Commit

netbeans-git-commit.png

Siempre que se realiza una confirmación es necesario incluir un mensaje indicando el motivo de los cambios que se incluyen en la misma. En el mismo dialogo veremos los cambios que se van a confirmar en el repositorio (adiciones, modificaciones y borrados)

netbeans-git-commit-data.png

Cuando queremos publicar y compartir nuestros cambios locales con los demás integrantes del proyecto debemos subirlos al repositorio de Bitbucket (esta acción se conoce como push) mediante la opción del menú contextual “Git-Remote-Push

netbeans-git-push.png

Se solicitan algunos datos para confirmar la subida de los cambios. Estos datos se pueden almacenar para que no se nos soliciten cada vez

netbeans-git-push-data.png

netbeans-git-push-login.png

netbeans-git-push-branches.png

Si actualizamos el dashboard del repositorio en Bitbucket podremos comprobar los cambios realizados

bitbucket-repository-dashboard.png

Ver los ficheros actualmente en el repositorio

bitbucket-repository-sources.png

Y comprobar las confirmaciones (commit) realizadas y subidas (push) al repositorio

bitbucket-repository-commits.png

A partir de este momento cualquier otro usuario puede realizar una descarga del repositorio (pull) y actualizar su copia local de trabajo (previamente creada con clone) con los cambios realizados en el repositorio central de Bitbucket mediante la opción del menú contextual “Git-Remote-Pull

netbeans-git-pull.png

Es recomendable hacer siempre un pull del repositorio antes de empezar a trabajar, para asegurarnos tener la copia mas actualizada del proyecto antes de empezar a realizar nuestras modificaciones.

En otro articulo explicaremos funciones mas avanzadas, como el trabajo con ramas (branches) y la resolución de conflictos (merge) cuando mas de un commit modifica el mismo fichero y el sistema no es capaz de realizar automáticamente la mezcla de dichas modificaciones.

4 comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.