Control de Versiones
description
Transcript of Control de Versiones
![Page 1: Control de Versiones](https://reader036.fdocuments.net/reader036/viewer/2022082819/56813d24550346895da6e95b/html5/thumbnails/1.jpg)
CONTROL DE VERSIONESIngeniería de Software
Andrés Salinas Bendeck
![Page 2: Control de Versiones](https://reader036.fdocuments.net/reader036/viewer/2022082819/56813d24550346895da6e95b/html5/thumbnails/2.jpg)
¿QUÉ ES UN SISTEMA DE CONTROL DE VERSIONES? Almacenamiento de los elementos que debe gestionar
Posibilidad de realizar cambios sobre ellos
Registro histórico de los cambios realizados, tanto del conjunto como del elemento en particular
![Page 3: Control de Versiones](https://reader036.fdocuments.net/reader036/viewer/2022082819/56813d24550346895da6e95b/html5/thumbnails/3.jpg)
CLASIFICACIÓN DE LOS SISTEMAS
Centralizados CVS – SVN
Distribuidos Git - Mercurial
![Page 4: Control de Versiones](https://reader036.fdocuments.net/reader036/viewer/2022082819/56813d24550346895da6e95b/html5/thumbnails/4.jpg)
FUNCIONAMIENTO
Independiente su clasificación, todos se basan en repositorios.
¿Qué es un repositorio? El conjunto de información gestionada por el sistema
Cada usuario/desarrollador puede crearse una copia local del repositorio. Repositorios exclusivos Repositorios colaborativos
![Page 5: Control de Versiones](https://reader036.fdocuments.net/reader036/viewer/2022082819/56813d24550346895da6e95b/html5/thumbnails/5.jpg)
FUNCIONAMIENTO
Pasos básicos:1. Checkout (o Update)
2. Modificación del archivo(s)
3. Commit
En casos que dos usuarios modifiquen el mismo archivo, se debe hacer merge entre ellos (de forma manual o automática)
![Page 6: Control de Versiones](https://reader036.fdocuments.net/reader036/viewer/2022082819/56813d24550346895da6e95b/html5/thumbnails/6.jpg)
CONCURRENT VERSIONS SYSTEM (CVS) Desarrollado por GNU Utiliza estructura cliente-servidor Existen clientes para la mayoría de las plataformas
TortoiseCVS es uno de los más utilizados a nivel de Windows
Tiene una serie de limitaciones: Los archivos en el repositorio no pueden ser renombrados Los directorios no pueden ser eliminados o renombrados
![Page 7: Control de Versiones](https://reader036.fdocuments.net/reader036/viewer/2022082819/56813d24550346895da6e95b/html5/thumbnails/7.jpg)
SUBVERSION (SVN)
Nació como el reemplazo de CVS, enfocándose en sus falencias.
Ventajas: Se sigue la historia de los archivos a través de copias y renombrados. Las modificaciones son atómicas Es más eficiente (v/s CVS) en la creación de branches y tags (O(1) v/s O(n)) Solamente se envían las diferencias hacia ambos lados (CVS envía todo) Puede ser servido a través de Apache
Faltas: El soporte de renombramiento aun no es completo Problemas de parches entre branches
TortoiseSVN es el software más común en Windows
![Page 8: Control de Versiones](https://reader036.fdocuments.net/reader036/viewer/2022082819/56813d24550346895da6e95b/html5/thumbnails/8.jpg)
¿QUIÉNES LO OCUPAN?
Apache KDE GNOME Google Code Leadsius GCC Python Mono SourceForge.net
![Page 9: Control de Versiones](https://reader036.fdocuments.net/reader036/viewer/2022082819/56813d24550346895da6e95b/html5/thumbnails/9.jpg)
MERCURIAL
Utiliza la estructura de un sistema distribuido Ofrece gran rendimiento y escalabilidad sin un servidor, principal
meta del proyecto Mercurial
Utiliza un protocolo basado en HTTP para acceder a los archivos
Cada usuario trabaja por su cuenta, para después realizar merge de los cambios
![Page 10: Control de Versiones](https://reader036.fdocuments.net/reader036/viewer/2022082819/56813d24550346895da6e95b/html5/thumbnails/10.jpg)
¿QUIÉNES LO USAN?
Python OpenOffice.org GNU Octave Mozilla Netbeans Option OpenSolaris Btrfs (Oracle)
![Page 11: Control de Versiones](https://reader036.fdocuments.net/reader036/viewer/2022082819/56813d24550346895da6e95b/html5/thumbnails/11.jpg)
GIT
Desarrollado por Linus Torvalds para ser utilizado en el desarrollo del kernel de Linux «Take CVS as an example of what not to do; if in doubt, make the exact
opposite decision” – Linus Torvalds
Estructura similar a Mercurial, sin un servidor central (Distribuido) Busca ser muy seguro frente a todo tipo de eventos (accidentes,
corrupción o software malicioso) Otros de los objetivos del proyecto es ser extremadamente
eficiente. Utilizado principalmente en linux, pero existe un port para
Windows (msysgit) Uno de los más usados en el mundo OpenSource
![Page 12: Control de Versiones](https://reader036.fdocuments.net/reader036/viewer/2022082819/56813d24550346895da6e95b/html5/thumbnails/12.jpg)
¿QUIÉNES LO USAN?
Amarok Android Arch Linux Cake PHP Debian Digg Fedora Ffmpeg GIMPO jQuery
Linux kernel Maemo OLPC openSUSE Perl phpBB Ruby on Rails Sugar Wine x264