Análisis y Diseño      de SoftwareTema 1. Control de versionesCarlos A. Iglesias <cif@gsi.dit.upm.es>Departamento de Ingen...
LeyendaTeoríaEjercicio práctico en el ordenadorAmpliación de conocimientosLectura / Vídeo / PodcastPráctica libre / Experi...
¿Cómo comparten código...?●   En una empresa    cientos de    programadores    programando a la    vez el mismo    program...
¿Cómo comparten código...?●   Programadores de    código abierto●    Distribuidos por    todo el mundo                    ...
¿Se mandan el código?           Control de versiones   5
Más problemas●   ¿Qué pasa si dos    personas han    cambiado el mismo    código?¿cómo lo    mezclan?●    ¿Cómo te enteras...
Solución: control de                  versiones● Unsistema que gestiona un repositorio de código (remoto) donde los usuari...
Sistemas de Control de             Versiones● Centralizados  –   Un repositorio central  –   CVS, Subversion (SVN)● Distri...
Git● 2005,Desarrollado por Linus Torvald para el kernel de Linux● Según Linus, no es un sistema de control de versiones, s...
Git●   Cada repositorio es completo (nos    bajamos todos los ficheros)●   Nos bajamos clonamos un repositorio    –   Al m...
Proceso    Control de versiones   11
Proceso●    Clonamos un repositorio o    iniciamos uno    –   Los tenemos en el working        directory● Editamos, añadim...
Github●   Es una forja para almacenar proyectos●   Tiene componente social (seguir amigos,    compartir código, etc.)●   L...
Resumen●   Es importante aprender a usar un sistema    de control de versiones●    Olvídate de numerar las versiones de un...
Upcoming SlideShare
Loading in …5
×

Tema 1 Control de Versiones

777 views

Published on

Introducción a control de versiones

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
777
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
19
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

×