You are on page 1of 6

Trabajar en equipo

ndice

1 | Trabajar en equipo 3

1.1 | Arquitecturas de almacenamiento 4


Trabajar en equipo | TELEFNICA // 3

1. Trabajar en equipo
Existen herramientas para trabajar en equipo, que adems nos permiten
versionar nuestras aplicaciones. Se llama control de versiones a la gestin de
los diversos cambios que se realizan sobre los elementos de algn producto o
una configuracin del mismo. Una versin, revisin o edicin de un producto,
es el estado en el que se encuentra el mismo en un momento dado de su
desarrollo o modificacin.

Estos sistemas facilitan la administracin de las distintas De forma exclusiva: En este esquema para poder realizar un
versiones de cada producto desarrollado, as como las posibles cambio es necesario comunicar al repositorio el elemento que
especializaciones realizadas (por ejemplo, para algn cliente se desea modificar y el sistema se encargara de impedir que
especifico). Ejemplos de este tipo de herramientas son entre otros otro usuario pueda modificar dicho elemento. Una vez hecha la
Subversion y GIT modificacin, esta se comparte con el resto de colaboradores.
Si se ha terminado de modificar un elemento entonces se libera
Para colaborar en un proyecto usando un sistema de control de
ese elemento para que otros lo puedan modificar. Subversion,
versiones lo primero que hay que hacer es crearse una copia
por ejemplo, permite este esquema de funcionamiento.
local obteniendo informacin del repositorio. A continuacin el
usuario puede modificar la copia. Existen dos esquemas bsicos De forma colaborativa: En este esquema cada usuario modifica
de funcionamiento para que los usuarios puedan ir aportando sus la copia local y cuando el usuario decide compartir los cambios
modificaciones: el sistema automticamente intenta combinar las diversas
modificaciones. El principal problema es la posible aparicin
de conflictos que deban ser solucionados manualmente o
las posibles inconsistencias que surjan al modificar el mismo
fichero por varias personas no coordinadas. Subversion o GIT
implementan este esquema.
Trabajar en equipo | TELEFNICA // 4

1.1 | Arquitecturas de almacenamiento

Podemos clasificar los sistemas de control de versiones atendiendo Ventajas de sistemas distribuidos:
a la arquitectura utilizada para el almacenamiento del cdigo:
Necesita menos veces estar conectado a la red para hacer
Centralizados: existe un repositorio centralizado de todo el operaciones. Esto produce una mayor autonoma y una mayor
cdigo, del cual es responsable un nico usuario (o conjunto de rapidez.
ellos). Se facilitan las tareas administrativas a cambio de reducir
Aunque se caiga el repositorio remoto la gente puede seguir
flexibilidad, pues todas las decisiones fuertes (como crear una
trabajando.
nueva rama) necesitan la aprobacin del responsable. Subversion
implementa esta arquitectura de almacenamiento. Al hacer los distintos repositorios una rplica local de la
informacin de los repositorios remotos a los que se conectan,
Las principales ventajas de este sistema son:
la informacin est muy replicada y por tanto el sistema tiene
En los sistemas centralizados las versiones vienen identificadas menos problemas en recuperarse si por ejemplo se quema la
por un nmero de versin. Sin embargo en los sistemas de mquina que tiene el repositorio remoto. Por tanto hay menos
control de versiones distribuidos no hay nmeros de versin, ya necesidad de copias de seguridad (backups). Sin embargo los
que cada repositorio tendra sus propios nmeros de revisin backups siguen siendo necesarios para resolver situaciones en
dependiendo de los cambios. las que cierta informacin todava no haya sido replicada.
En lugar de eso cada versin tiene un identificador al que se le Permite mantener repositorios centrales ms limpios en el
puede asociar una etiqueta (tag). sentido de que un usuario puede decidir que ciertos cambios
realizados por l en el repositorio local, no son relevantes para
Distribuidos: Cada usuario tiene su propio repositorio. Los
el resto de usuarios y por tanto no permite que esa informacin
distintos repositorios pueden intercambiar y mezclar revisiones
sea accesible de forma pblica. Por ejemplo es muy til se
entre ellos. Es frecuente el uso de un repositorio, que esta
pueden tener versiones inestables o en proceso de codificacin
normalmente disponible, que sirve de punto de sincronizacin de
o tambin tags propios del usuario.
los distintos repositorios locales. GIT implementa este sistema.
Trabajar en equipo | TELEFNICA // 5

El servidor remoto requiere menos recursos que los que Clear Case: solucin propietaria desarrollada por IBM. Se trata
necesitara un servidor centralizado ya que gran parte del trabajo de una herramienta principalmente enfocada a trabajar dentro
lo realizan los repositorios locales. del ecosistema de aplicaciones de desarrollo de IBM.
Al ser los sistemas distribuidos ms recientes que los sistemas VSS (Visual SourceSafe): sistema de control de versiones de
centralizados y, al tener ms flexibilidad por tener un repositorio Microsoft (desarrollado inicialmente por la empresa One Tree
local y otro/s remotos. Estos sistemas han sido diseados para Software). Su sistema de transferencia de archivos se basa en
hacer fcil el uso de ramas (creacin, evolucin y fusin) y poder SMB (el sistema de comparticin de recursos de Microsoft). Se
aprovechar al mximo su potencial. Por ejemplo se pueden crear integra con el entorno de desarrollo Visual Studio.
ramas en el repositorio remoto para corregir errores o crear
StarTeam: sistema de control de versiones propietario de la
funcionalidades nuevas.
empresa Borland (previamente desarrollado por Starbase
Pero tambin se pueden crear ramas en los repositorios locales Corporation y posteriormente adquirido por Borland). Es una
para que los usuarios puedan hacer pruebas y dependiendo de los aplicacin cliente / servidor cuya parte servidora se implementa
resultados fusionarlos con el desarrollo principal o no. Las ramas mediante una base de datos relacional (Oracle o SQL Server) y un
dan una gran flexibilidad en la forma de trabajo cliente pesado desarrollado en Java.
Algunos de los programas para controles de versiones ms Tambin existen otros clientes como un cliente de lnea de
extendidos son: comandos o el cliente implementado en el entorno de desarrollo
Jbuilder.
CVS (Concurrent Versions System): sistema de libre distribucin
bajo licencia GNU, que funciona bajo el esquema de cliente- GIT, Bazaar y Mercurial: a diferencia de los anteriores, no siguen
servidor. Al igual que el resto de sistemas de control de el esquema cliente-servidor, si no que son sistemas de control
versiones, su finalidad es proveer a un equipo de desarrollo de de versiones distribuidos.
una herramienta que permita gestionar los distintos cambios
realizados por el equipo de desarrollo y generar un nico cdigo
final en la medida de lo posible.
Subversion: sistema de libre distribucin bajo licencia Apache
y desarrollada por Apache Software Foundation. Est basado
en CVS, pero lo mejora en muchos aspectos como la gestin de
ficheros, envos atmicos de los cambios (todos los cambios son
tratados como un nico cambio), etc.

You might also like