Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Tema 1 Control de Versiones

953 views

Published on

Introducción a control de versiones

Published in: Technology
  • Be the first to comment

Tema 1 Control de Versiones

  1. 1. Análisis y Diseño de SoftwareTema 1. Control de versionesCarlos A. Iglesias <cif@gsi.dit.upm.es>Departamento de Ingeniería de Sistemas Telemáticos http://moodle.dit.upm.es
  2. 2. LeyendaTeoríaEjercicio práctico en el ordenadorAmpliación de conocimientosLectura / Vídeo / PodcastPráctica libre / Experimentación Control de versiones 2
  3. 3. ¿Cómo comparten código...?● En una empresa cientos de programadores programando a la vez el mismo programa● Distribuidos por oficinas en todo el mundo Control de versiones 3
  4. 4. ¿Cómo comparten código...?● Programadores de código abierto● Distribuidos por todo el mundo Control de versiones 4
  5. 5. ¿Se mandan el código? Control de versiones 5
  6. 6. Más problemas● ¿Qué pasa si dos personas han cambiado el mismo código?¿cómo lo mezclan?● ¿Cómo te enteras de si alguien ha cambiado algo si están mil personas trabajando? Control de versiones 6
  7. 7. Solución: control de versiones● Unsistema que gestiona un repositorio de código (remoto) donde los usuarios pueden – Descargar el código del repositorio en su ordenador (checkout) – Modificar el código en local, crear nuevos ficheros, y añadirlos al repositorio (commit) – Si al añadir código hay conflictos (con otro usuario), el gestor combina el código si puede – Cada vez que hacemos commit, se crea una versión, y podemos recuperar versiones anteriores – Podemos tener varias ramas, p.ej. para una versión y la siguiente, y combinarlas Control de versiones 7
  8. 8. Sistemas de Control de Versiones● Centralizados – Un repositorio central – CVS, Subversion (SVN)● Distribuidos – Servidor con más autoridad por convenio – Cada checkout es un repositorio – Mercurial – BitKeeper – Bazaar Control de versiones 8
  9. 9. Git● 2005,Desarrollado por Linus Torvald para el kernel de Linux● Según Linus, no es un sistema de control de versiones, sino un sistema de ficheros orientado a objeto versionable... pero se usa como control de versiones Control de versiones 9
  10. 10. Git● Cada repositorio es completo (nos bajamos todos los ficheros)● Nos bajamos clonamos un repositorio – Al modificar / editar / añadir el código se añade a staging / index – Al confirmar los cambios los añadimos al repositorio● Git usa fotos del repositorio Control de versiones 10
  11. 11. Proceso Control de versiones 11
  12. 12. Proceso● Clonamos un repositorio o iniciamos uno – Los tenemos en el working directory● Editamos, añadimos ficheros y los añadimos a git (los tenemos también en index)● Decidimos confirmar los cambios (commit) → pasan al repositorio (HEAD) Control de versiones 12
  13. 13. Github● Es una forja para almacenar proyectos● Tiene componente social (seguir amigos, compartir código, etc.)● Lo vamos a utilizar para guardar el código proporcionado en las prácticas (en dirección asignatura → alumnos) Control de versiones 13
  14. 14. Resumen● Es importante aprender a usar un sistema de control de versiones● Olvídate de numerar las versiones de un programa (p.java, p1.java, …) → es más rápido usar control de versiones● Muy bien integrado en IDEs Control de versiones 14

×