Está en la página 1de 6

CONTROL DE VERSION.

Un sistema de control de versin es una combinacin de tecnologa y prcticas para


seguir y controlar los cambios que se realizan sobre un archivo o conjunto de archivos a lo
largo del tiempo.
Una versin, revisin o edicin de un producto, es el estado en el que se encuentra dicho
producto en un momento dado.
Un sistema de control de versin viene a responder preguntas del tipo quien realizo un
cambio reciente, cuando se rompi ese componente, con que componentes est
relacionado, etc.
Muchas empresas de desarrollo de software establecen las prcticas de control de
versin sin tener en cuenta los distintos factores que influyen en el desarrollo de cdigo.
Por ejemplo, estructura de la organizacin, arquitectura del producto, herramientas
disponibles, etc.
Beneficios:

Facilita la comunicacin entre los desarroladores/miembros de un equipo de


trabajo.
Manejo de los lanzamientos.
Administracin de Fallos
Estabilidad en el desarrollo del proyecto.

El ncleo del sistema es la gestin de cambios. Es un mecanismo de comunicacin donde


el cambio es la unidad bsica de informacin.

Arquitectura de Almacenamiento
Centralizada: Existe un repositorio centralizado, del cual es responsable un nico
usuario. Se facilitan las tareas administrativas a cambio de sacrificar flexibilidad, ya que
las decisiones las debe tomar el responsable del repositorio. Ejemplo SVN.
Distribuido: Cada usuario tiene su propio repositorio (localmente), el cual interacta con
los repositorios de los otros desarrolladores intercambiando las distintas versiones. Se
utiliza normalmente un repositorio que sirve como punto de sincronizacin para todos los
repositorios locales. Ejemplo Git.

GIT
Introduccin.
En el 2002 el proyecto de desarrollo del kernel de linux empez a utilizar BitKeeper hasta
el 2005, cuando se revoco el uso sin cargo de la herramienta. Desde ese momento Linus
Torvalds desarrollo Git con el fin de reemplazar el sistema de control de versiones que
estuvieron utilizando hasta ese momento enfocndose en una serie de objetivos que
deba cumplir:
1. Velocidad
2. Diseo simple
3. Fuerte soporte al desarrollo no lineal
4. Completamente distribuido.
5. Capaz de manejar grandes proyectos.
Caractersticas de Git
Git, a diferencia de otros SCV, no almacena las diferencias que se producen entre los
archivos, si no que toma una snapshot del estado en el que se encuentra en general el
proyecto.
La mayora de las operaciones que se ejecutan en git son locales. Esto permite que se
pueda trabajar con git sin necesidad de estar conectado a un red permanentemente.
Git posee integridad, ya que se utiliza un cdigo SHA a la hora de almacenar
informacin en git.

la

Estado de un archivo en Git


Un archivo que se versiona con git posee 3 estados: modificado, staged y committed.
Modificado es un archivo que ha sufrido modificaciones y se encuentra en el directorio de
trabajo, pero no esta listo para una snapshot, es decir, pasar al rea de stagin. Staged es
cuando se ha tomado una snapshot del archivo para ser commiteado. Por ltimo
committed es cuando el archivo se encuentra almacenado en la base de datos local.

Instalacin
En linux
$sudo apt-get install git

En Windows
Bajar el archivo desde la pagina http://git-scm.com/ y ejecutar el .exe
Configuracin Bsica
Con esto se configurara un usuario y un mail de contacto para el usuario de git.
$git config --global user.name "Su nombre"
$git config --global user.email su e-mail
Crear un repositorio.
$git init
Verificar el estado de los archivos
$git status
Realizar Commits
$git add .
$git commit
Log de Trabajo
$git log
Herramientas Grficas para Git
En su pgina web, se puede encontrar un gran conjunto de herramientas grficas, tanto
free como pagas, que permiten operar Git. Por mencionar algunas de ellas tenemos
SourceTree, Gitbox, gitg, entre otras.

SVN
El proyecto SVN se origino en el ao 2000 por parte de la empresa CollabNet. Para el ao
2009 inicio su camino ingresando a la incubadora de proyectos de Apache y en el ao
2010 paso a formar parte de Apache Software Foundation. En la actualidad, Apache se
ocupa de mantener dicho proyecto distribuyendolo bajo una de sus licencias.
Es un sistema de control de versin centralizado y la evolucin de CVS, ya que corrige

varios fallos de este ltimo. Es por esto, que guarda mucha similitud en su forma de uso
con CVS.
Para guardar las modificaciones utiliza el concepto de revisin, es decir, guarda
solamente el conjunto de modificaciones, que es conocido como deltas.

Caractersticas

Repositorio centralizado.
Trabaja con el concepto de revisin.

Otras Caractersticas

Versionado de directorio
Commits atmicos
Versionado de metadata
Manejo de datos consistente
Branching y tagging

Estructura de trabajo
La estructura TTB es el estndar de facto que utiliza SVN a la hora de trabajar. TTB se
refiere a Trunk, Tags, Branches, cada una con su funcionalidad especfica.
Trunk: Rama de desarrollo principal.
Branches: Rama/s con evolucin paralela a Trunk. Aqu es donde se lleva adelante el
desarrollo diario.
Tags: Rama de gestin de versiones. Solamente se encuentran las versiones de aquellos
componentes que ya se han cerrado.

Instalacin
En Linux (Ubuntu):
$sudo apt-get install subversion
$sudo apt-get install libapache2-svn
En Windows
Descargar el .exe desde alguno de los enlaces que figura en la siguiente direccin

http://subversion.apache.org/packages.html#windows

Iniciar Repositorio
Es necesario crear el repositorio que contendr los distintos proyectos a versionarse. Para
este caso se trabajara localmente en el directorio /home/nombre_de_usuario.
$mkdir svn
$svnadmin create svn
Esto crea los siguientes directorio y archivos dentro del repositorio:

conf
db
format
hooks
locks
README.txt

Importar Proyecto
Como se ha mencionado, SVN trabaja con una estructura recomendada que es trunk,
branches y tags. Es por ello que a la hora de empezar con el proyecto, primero se creara
la estructura/esqueleto del proyecto y luego se agregara el contenido.
$mkdir

proyecto proyecto/trunk proyecto/branches proyecto/tags

Luego, se procede a importar el proyecto al repositorio.


$svn import proyecto
file:///home/nombre_de_usuario/svn_repo/proyecto
Crear copia de trabajo
Ahora se procede a obtener el repositorio versionado desde el repositorio de svn. La
estructura es especificar el comando + el path + directorio destino del proyecto.
$svn checkout file:///home/nombre_de_usuario/svn_repo/proyecto
proyecto

Comando status
Con este comando conoceremos el estado del proyecto.
$svn status

Agregar archivo
Se puede agregar un archivo a varios.
$svn add trunk
$svn add trunk/archivo a agregar
Realizar commit
$svn commit -m 'Commit inicial'
Update
Con este comando actualizamos la informacin de nuestro repositorio.
$svn update
Agregar modificaciones.
$svn commit -m 'mensaje'
Ver Log
$svn log
Herramientas Grficas para SVN
Se puede encontrar varias interfaces grficas para SVN tanto para Windows, Linux y Mac.
Por mencionar algunas como TortoiseSVN, SmartSVN, RapidSVN y KdeSVN, entre otras.
GitHub
Es un servicio en la nube en la que podemos tener nuestros repositorios de proyectos y
compartirlo con el resto del mundo. Es gratuito y si se quiere que los repositorios sean
privados, se debe abonar mensualmente un monto nfimo.
https://www.github.com

También podría gustarte