Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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
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