May 30, 2015
alvaro
Comentarios desactivados en Optimización de Software

Optimización de Software

Control de versiones (VCS) con Repositorios

Es habitual que durante el desarrollo de un proyecto realicemos pruebas, modifiquemos código o añadamos funcionalidades. Por ello, es útil y necesario guardar por separado todos los cambios que vamos realizando mediante un sistema de control de versiones (VCS) integrado en nuestro IDE.

¿Qué es el VCS?

Es una herramienta que registra todos los cambios realizados en un proyecto, tanto en la estructura de los directorios como en el contenido de los ficheros, y que permite recuperar versiones específicas.

Se realiza a través de un repositorio (servidor de archivos) que soporta desarrollo colaborativo de código y control de revisiones de un proyecto.

Además de repositorios locales, existen centralizados donde el código está en un único servidor que contiene todos los archivos versionados (CVS, SubVersion o SVN , etc.) y distribuidos en los que el código puede estar en diferentes repositorios locales (Git, Mercurial, etc.).

 

git-tutorial-basics-clone-repotorepocollaboration

¿Cómo funciona?

Pondremos como ejemplo uno de cada tipo:

SVN

Proceso de uso de SVN

Proceso de uso de SVN

 

  • Tenemos el código en un repositorio central en una carpeta llamada trunk (rama de desarrollo principal) o en las carpetas branch (rama con evoluciones paralelas al trunk) o tag (reservada a versiones cerradas).
  • Los usuarios se descargan una copia local y hacen sus cambios.
  • Un usuario sube los cambios al repositorio (commit).
  • Un usuario actualiza su copia con la del servidor (update).

Cheat Sheet de Subversion

Cheat Sheet de Subversion

GIT

repositorio-git1

Proceso de uso de GIT

  • Modela sus datos como un conjunto de instantáneas de un mini sistema de archivos.
  • Tiene tres secciones principales: Git directory, working directory y staging area.
  • Tiene tres estados principales en los que se pueden encontrar nuestros archivos: committed, modified y staged.
  • Se modifican los archivos en el directorio de trabajo. Su estado será modified.
  • Se preparan los archivos añadiendo instantáneas de ellos en el área de preparación. Su estado será staged.
  • Se confirman los cambios y se almacena la instantánea de forma permanente en el directorio Git. Su estado será committed.

Cheat Sheet de as funciones de GIT

Centralizados VS Distribuidos

Durante muchos años el estándar para el control de versiones ha sido el centralizado pues proporciona bastantes ventajas frente a VCS locales.

Entre esas ventajas cabe destacar su fácil administración y el control detallado que se tiene sobre lo que está haciendo cada colaborador del proyecto. La principal desventaja de este tipo de repositorios radicaría en que al estar el proyecto en un único servidor, si se daña el disco duro en el que se encuentra la base de datos central se perdería toda la información o si durante un tiempo el servidor se “cae” ningún colaborador podría trabajar ni guardar los cambios.

Todo esto se evita con los VCS distribuidos ya que el usuario no se descarga sólo la última instantánea de los archivos sino que copia el repositorio. Cada vez que se descarga una instantánea está haciendo una copia de seguridad de todos los datos. Además utilizando este tipo de repositorios el usuario puede colaborar con distintos grupos lo que permite establecer varios flujos de trabajo.  Tú decides…

¿VCS centralizados o distribuidos?

 

En complemento a la Presentación PowerPoint sobre Java8

Comments are closed.