tema 1 control de versiones
Post on 27-Jun-2015
718 Views
Preview:
DESCRIPTION
TRANSCRIPT
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 <cif@gsi.dit.upm.es>
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
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
Control de versiones 4
¿Cómo comparten código...?
● Programadores de código abierto
● Distribuidos por todo el mundo
Control de versiones 5
¿Se mandan el código?
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?
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
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
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
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
Control de versiones 11
Proceso
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)
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)
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
top related