La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Ingeniería de Software Andrés Salinas Bendeck

Presentaciones similares


Presentación del tema: "Ingeniería de Software Andrés Salinas Bendeck"— Transcripción de la presentación:

1 Ingeniería de Software Andrés Salinas Bendeck
Control de Versiones Ingeniería de Software Andrés Salinas Bendeck

2 ¿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

3 Clasificación de los sistemas
Centralizados CVS – SVN Distribuidos Git - Mercurial Centralizados: existe un repositorio centralizado de todo el código, del cual es responsable un único usuario (o conjunto de ellos). Se facilitan las tareas administrativas a cambio de reducir flexibilidad, pues todas las decisiones fuertes (como crear una nueva rama) necesitan la aprobación del responsable. Distribuidos: cada usuario tiene su propio repositorio. No es necesario tomar decisiones centralizadamente. Los distintos repositorios pueden intercambiar y mezclar revisiones entre ellos.

4 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

5 FUNCIONAMIENTO Pasos básicos:
Checkout (o Update) Modificación del archivo(s) Commit En casos que dos usuarios modifiquen el mismo archivo, se debe hacer merge entre ellos (de forma manual o automática)

6 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 CVS utiliza una arquitectura cliente-servidor: un servidor guarda la(s) versión(es) actual(es) del proyecto y su historial. Los clientes se conectan al servidor para sacar una copia completa del proyecto. Esto se hace para que eventualmente puedan trabajar con esa copia y más tarde ingresar sus cambios con comandos GNU.

7 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 Atomicidad Se dice que una operación es atómica cuando es imposible para otra parte de un sistema encontrar pasos intermedios. Si esta operación consiste en una serie de pasos, todos ellos ocurren o ninguno. Por ejemplo en el caso de una transacción bancaria o se ejecuta tanto el deposito y la deducción o ninguna acción es realizada. Es una característica de los sistemas transaccionales. El manejo de cambio de nombres de archivos no es completo. Lo maneja como la suma de una operación de copia y una de borrado.

8 ¿Quiénes lo ocupan? Apache KDE GNOME Google Code Leadsius GCC Python
Mono SourceForge.net

9 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

10 ¿Quiénes lo usan? Python OpenOffice.org GNU Octave Mozilla Netbeans
Option OpenSolaris Btrfs (Oracle)

11 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

12 ¿Quiénes lo usan? Amarok Linux kernel Android Maemo Arch Linux OLPC
Cake PHP openSUSE Debian Perl Digg phpBB Fedora Ruby on Rails Ffmpeg Sugar GIMPO Wine jQuery x264


Descargar ppt "Ingeniería de Software Andrés Salinas Bendeck"

Presentaciones similares


Anuncios Google