1 / 12

Control de Versiones

Control de Versiones. Ingeniería de Software Andrés Salinas Bendeck. ¿Qué es un sistema de control de versiones?. Almacenamiento de los elementos que debe gestionar Posibilidad de realizar cambios sobre ellos

hewitt
Download Presentation

Control de Versiones

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  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. Concurrentversionssystem (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

  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

  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 LinusTorvalds 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 • Android • Arch Linux • Cake PHP • Debian • Digg • Fedora • Ffmpeg • GIMPO • jQuery • Linux kernel • Maemo • OLPC • openSUSE • Perl • phpBB • Ruby onRails • Sugar • Wine • x264

More Related