viernes, 11 de marzo de 2016

Control de versiones de software y desarrollo colaborativo

Git es un sistema distribuido de control de código fuente que nos permite ordenar y gestionar el desarrollo de software mediante proyectos colaborativos.

Lo que puede hacer es:
  1. Compartir proyectos con usuarios o grupos de usuarios que intervengan en el desarrollo de manera colaborativa de un proyecto software.
  2. Mantener un proyecto común que puede ser mejorado independientemente de las cosas que le añaden los distintos programadores que intervienen en su desarrollo.
  3.  Controlar los cambios que se hacen en un proyecto software en cualquier parte del desarrollo así como las personas que intervienen en el.

Esta tarea es fundamental para el desarrollo de software porque permite mantener y llevar un control funcional incluso en proyectos independientes.

Que aporta a la Ingeniería de Software:
  • Permite hacer auditoría de software: permitiendo saber quién ha modificado que y cuando.
  • Controla como va cambiado nuestro software (muestra la evolución de nuestro proyecto).
  • Control de versiones de software a través de etiquetas V1.0, V1.0.1, etc. saber qué diferencias existen entre las diferentes versiones que se van produciendo.
  • Cifrado y seguridad de nuestros proyectos; nosotros nos enteramos de todo lo que le pasa a nuestro código.
  • Mejorar el trabajo en equipo.


Que necesitamos para empezar:

1.- Descargamos primero la herramienta GIT de su página oficial:

Esta es una herramienta ejecutable modo consola tipo DOS (pero también cuenta con una interfaz gráfica), este programa nos permite comunicarnos con nuestro repositorio (banco de códigos fuente) ya sea local o mediante internet.
Esta consola se controla mediante una serie de códigos.

2.- Un repositorio de códigos: Este es uno de los conceptos importantes de la filosofía colaborativa que tiene GIT; porque hace uso de servicios web colaborativos; estos servicios web almacenan el código fuente ya sean en proyectos públicos o privados, que luego son usados por los desarrolladores para hacer modificaciones, mejoras o extensiones  al código original.

Los repositorios que se han visto son:
También se encontró un repositorio boliviano basado en gitlab: http://gitlab.softwarelibre.gob.bo/

Por sus características se puede decir que GITHUB es el repositorio más popular, por su carácter social y además de que las principales marcas (Facebook, twitter, googlelabs, etc.) utilizan esta plataforma para lanzar sus productos y obtener retroalimentación de la comunidad de desarrolladores aprovechando su modelo de negocios. Por otro lado su desventaja es que, en cuentas gratuitas no se permite repositorios privados. GITLAB al contrario es por completo software libre por lo que cuenta con las mismas herramientas y más que github hasta la instalación de repositorios locales empresariales en base a Linux; un punto medio que puede existir y solución a mediano plazo para el manejo de desarrollos software y versionamiento, seria BITBUCKET que permite con un plan gratuito crear repositorios privados o públicos, manteniendo un equipo de trabajo colaborativo y todo esto de manera sencilla y privada.

Comenzando con BITBUCKET

1.- Ingresamos a la página https://bitbucket.org/ se puede crear un usuario o utilizar nuestra cuenta google para ingresar.
2.- una vez que ingresemos nos muestra un escritorio

Con el que ya se puede empezar a trabajar; en la parte inferior se muestra nuestros repositorios y fácilmente se puede invitar a otras personas para formar un equipo de desarrollo (máximo 5 en la versión libre).


3.- empezamos a crear repositorios: en el menú superior Repositorios/Crear repositorio
Le damos un nombre al proyecto, en la sección de configuraciones avanzadas podemos dar más características al proyecto, como los forks (versiones ajenas del proyecto o bifurcaciones), para tener todas las notificaciones de modificación de nuestro código habilitamos la gestión de incidencias y el hipchat.

Una vez creado nuestro repositorio entramos a la configuración:
En esta parte ya se tiene todas las herramientas para empezar a llenar nuestros repositorios de códigos.

El menú lateral de herramientas se divide en Acciones y Navegación.

La navegación muestra un resumen de nuestro proyecto, además muestra el código fuente, los commits que son las pequeñas versiones o pequeños cambios que se añaden a nuestro proyecto; las branchs o ramas son funcionalidades aisladas unas de otras, se crean ramas durante el desarrollo y se fusionan a la rama principal cuando se terminen esas ramas del desarrollo. Las peticiones Pull son para que los demás desarrolladores revisen los cambios que se han hecho al código donde se aprueba los cambios para futuras versión y se fusionan al proyecto. Las Issues son las incidencias o reportes de errores que puede tener nuestro código.

Las acciones se controlan desde el mismo repositorio o por medio de nuestro cliente GIT; existen diferentes operaciones como Clonar que sirve para obtener nuestro código con las modificaciones respectivas en cualquier momento. Se puede también agregar ramas o branchs a nuestro proyecto, hacer modificaciones al código así como compararlo o separar nuestro código para hacer nuevas versiones.

4.- con la herramienta GIT que hemos descargado vamos a ejecutarlo, nos saldrá una ventana tipo consola; lo primero que se hace es identificarse como usuario:

lo primero que se hace es identificarse como usuario:
$git config –global user.name “su_nombre_de_usuario
$git config –global user.email sucorreo@gmail.com

Ya se puede empezar a trabajar con GIT:

En el paso (3) empezamos a creando un repositorio vacío, al cual iremos llenando de código por medio de la consola. Por medio de la consola tenemos que encontrarnos en la carpeta de nuestro proyecto software.

$cd [path de donde se encuentra nuestro proyecto]

Ejemplo:

$cd e/proyectos/prueba

Como es una prueba estoy en una carpeta prueba vacía, aquí será donde clonare mi repositorio que también está vacío.
$git clone [aquí va la dirección que voy a copiar de mi repositorio bitbucket]
En la página de bitbucket escojo el botón clonar del panel izquierdo de acciones y copio la dirección que se encuentra en el cuadro de texto HTTPS.
Ejemplo:

$git clone https://xxxxx@bitbucket.org/dirRaiz/prueba2.git

Pulso ENTER y se clona el proyecto “vacío” en el equipo local en la dirección que se le indico. Si abrimos la carpeta del proyecto de prueba no veremos ningún cambio excepto que se creó una carpeta oculta .git que establece esta carpeta como mi proyecto master del cual a partir de ahora está vinculada al proyecto software que he creado en bitbucket.

Para Finalizar; realizaremos una prueba más que será crear un archivo que se añadirá al proyecto; para eso creamos un archivo (en este caso estoy creando un textoPrueba.txt) y vincularemos este archivo de prueba como parte de nuestro código de proyecto. Para eso en la consola GIT escribimos el siguiente código:

$git status

Este nos mostrara el estado actual del proyecto

Para actualizar todos los archivos i incluirlos en el proyecto (en este caso solo hemos creado textoPrueba.txt) escribimos el siguiente código:

$git add .

Y revisando el estado otra vez obtendremos:

Como se puede ver se a incluido un nuevo archivo al proyecto, como es un ejemplo incluiremos un commit  o  un aviso a las personas que vean mi código que he hecho un cambio al proyecto añadiendo un archivo esto se hace con la siguiente línea de código.


$git commit –m “commit inicial”

Que indica que 1 archivo a cambiado y se inserta en el proyecto. Por ultimo vamos a actualizar nuestro proyecto y ponerlo a disposición de los demás desarrolladores. Para esto tenemos que subirlo a BITBUCKET con el siguiente código:

$git push origin master


Ahora si vemos nuestro proyecto en el servicio BITBUCKET esta actualizado con el nuevo archivo que se incluyó y además de las notificaciones correspondientes de lo que se ha hecho en el proyecto.


Referencias: