tema 1 control de versiones
DESCRIPTION
Introducción a control de versionesTRANSCRIPT
![Page 1: Tema 1 Control de Versiones](https://reader035.vdocumento.com/reader035/viewer/2022062406/558de5091a28abf9428b46aa/html5/thumbnails/1.jpg)
Análisis y Diseño de Software
Departamento de Ingeniería de Sistemas Telemáticoshttp://moodle.dit.upm.es
Tema 1. Control de versiones
Carlos A. Iglesias <[email protected]>
![Page 2: Tema 1 Control de Versiones](https://reader035.vdocumento.com/reader035/viewer/2022062406/558de5091a28abf9428b46aa/html5/thumbnails/2.jpg)
Control de versiones 2
Teoría
Ejercicio práctico en el ordenador
Ampliación de conocimientos
Lectura / Vídeo / Podcast
Práctica libre / Experimentación
Leyenda
![Page 3: Tema 1 Control de Versiones](https://reader035.vdocumento.com/reader035/viewer/2022062406/558de5091a28abf9428b46aa/html5/thumbnails/3.jpg)
Control de versiones 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
![Page 4: Tema 1 Control de Versiones](https://reader035.vdocumento.com/reader035/viewer/2022062406/558de5091a28abf9428b46aa/html5/thumbnails/4.jpg)
Control de versiones 4
¿Cómo comparten código...?
● Programadores de código abierto
● Distribuidos por todo el mundo
![Page 5: Tema 1 Control de Versiones](https://reader035.vdocumento.com/reader035/viewer/2022062406/558de5091a28abf9428b46aa/html5/thumbnails/5.jpg)
Control de versiones 5
¿Se mandan el código?
![Page 6: Tema 1 Control de Versiones](https://reader035.vdocumento.com/reader035/viewer/2022062406/558de5091a28abf9428b46aa/html5/thumbnails/6.jpg)
Control de versiones 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?
![Page 7: Tema 1 Control de Versiones](https://reader035.vdocumento.com/reader035/viewer/2022062406/558de5091a28abf9428b46aa/html5/thumbnails/7.jpg)
Control de versiones 7
Solución: control de versiones
● Un sistema 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
![Page 8: Tema 1 Control de Versiones](https://reader035.vdocumento.com/reader035/viewer/2022062406/558de5091a28abf9428b46aa/html5/thumbnails/8.jpg)
Control de versiones 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
![Page 9: Tema 1 Control de Versiones](https://reader035.vdocumento.com/reader035/viewer/2022062406/558de5091a28abf9428b46aa/html5/thumbnails/9.jpg)
Control de versiones 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
![Page 10: Tema 1 Control de Versiones](https://reader035.vdocumento.com/reader035/viewer/2022062406/558de5091a28abf9428b46aa/html5/thumbnails/10.jpg)
Control de versiones 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
![Page 11: Tema 1 Control de Versiones](https://reader035.vdocumento.com/reader035/viewer/2022062406/558de5091a28abf9428b46aa/html5/thumbnails/11.jpg)
Control de versiones 11
Proceso
![Page 12: Tema 1 Control de Versiones](https://reader035.vdocumento.com/reader035/viewer/2022062406/558de5091a28abf9428b46aa/html5/thumbnails/12.jpg)
Control de versiones 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)
![Page 13: Tema 1 Control de Versiones](https://reader035.vdocumento.com/reader035/viewer/2022062406/558de5091a28abf9428b46aa/html5/thumbnails/13.jpg)
Control de versiones 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)
![Page 14: Tema 1 Control de Versiones](https://reader035.vdocumento.com/reader035/viewer/2022062406/558de5091a28abf9428b46aa/html5/thumbnails/14.jpg)
Control de versiones 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