38
Gestión de la Configuración Del Software (SCM) Taller de Programación 2021

Gestión de la Configuración Del Software (SCM)

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Gestión de la Configuración Del Software (SCM)

Gestión de la ConfiguraciónDel Software (SCM)

Taller de Programación 2021

Page 2: Gestión de la Configuración Del Software (SCM)

Agenda

- SCM- Herramientas SCM- GIT

Page 3: Gestión de la Configuración Del Software (SCM)

Software Configuration Management (SCM)- Configuración del Software:

- Conjunto de elementos de configuración que conforman el software en un momento dado.

- Controlar los cambios sobre archivos (del desarrollo)

- Mantener un correcto versionado de nuestro sistema (durante la construcción).

Page 4: Gestión de la Configuración Del Software (SCM)

Herramientas SCM

Permiten:- Múltiples desarrolladores modificando el mismo código- Automatizar las actualizaciones entre

versiones- Acceder a cualquier estado previo del código

Page 5: Gestión de la Configuración Del Software (SCM)

Herramientas SCM

Previenen:- Sobreescribir código- Pérdidas de Trabajo por falta de respaldos

No sustituye la necesidad de gestionar la comunicación entre desarrolladores

Page 6: Gestión de la Configuración Del Software (SCM)

Herramientas SCM

Conceptos Principales:- Versión Principal (tronco) y ramas (branchs)- Versiones simbólicas (tags)- Gestionado: check out, commit, diff, merge

(de archivos y ramificaciones)

Page 7: Gestión de la Configuración Del Software (SCM)

Herramientas SCM

Versión Principal y Ramas

Page 8: Gestión de la Configuración Del Software (SCM)

Herramientas SCM

Podría volver al tronco incluyendo cambios de un Branch con un MergeLa versión 1.5 incluye el commit 1.2.4.2

Page 9: Gestión de la Configuración Del Software (SCM)

Herramientas SCMGestionado: Poner un archivo bajo configuración en la herramientaCheck Out: obtener versión del SW (tronco, Branch, tag, archivo, etc.)Commit: confirmar cambios en el SW- Éxito : genera una nueva versión- Conflicto: hay que analizar los cambios(desarrollador) y hacer un Merge

Page 10: Gestión de la Configuración Del Software (SCM)

Herramientas SCM

Diff : Permite ver los cambios entre versiones del SW (archivos, versión, etc.)Merge: unir los cambios en una versión

Las herramientas indican conflictos (ej. Diferente código en la misma línea), el desarrollador debe definir el merge (eligiendo qué queda y qué elimina).

Page 11: Gestión de la Configuración Del Software (SCM)

Herramienta SCM

Distintas Opciones:- Repositorios Centralizados - SVN - Repositorios Distribuidos – GIT

Los conceptos vistos aplican (mayormente) a todas (cada una tiene su implementación).

Page 12: Gestión de la Configuración Del Software (SCM)

Centralizado vs Distribuido

CentralizadoHay un solo servidor que guarda todas las versiones.Todos saben que está haciendo cada uno encada momento.Único punto de falla.

Page 13: Gestión de la Configuración Del Software (SCM)

Centralizado vs Distribuido

DistribuidoVarias copias en cada usuarioCada clone del repositorio es un backup de todos los datosNo hay un único punto de fallaMás difícil saber en quéestá trabajando cada integrante.

Page 14: Gestión de la Configuración Del Software (SCM)

¿Qué es GIT?

- Repositorio Distribuido para gestionar el control de cambios y versiones del software

- Repositorio:- Almacena todos los archivos del SW puestos

bajo configuración y su historia- Puede ser Local o Remoto

Page 15: Gestión de la Configuración Del Software (SCM)

GIT

Estado de los Archivos:- Commiteados, Modificados y Preparados (Staged)

Workflow:- Modificar archivos, - Preparar archivos

- Commit de archivos preparados, almacenando un snapshotde los archivos en el directorio GIT

Page 16: Gestión de la Configuración Del Software (SCM)

GIT: Estado de Archivos

Page 17: Gestión de la Configuración Del Software (SCM)

GIT- Configurar Identidad

- eGIT

Page 18: Gestión de la Configuración Del Software (SCM)

GIT

- Clonar Repositorio

- Crea una copia localdel repositorio remoto

Ej. eGIT

Page 19: Gestión de la Configuración Del Software (SCM)

GITLos archivos pueden estar Trackeados o No Trackeados. - Trackeados: archivos incluidos en el último snapshot. Pueden estar sin modificar, modificados o preparados.- No Trackeados: el resto.Realizar las transiciones de estado para los archivos implica la ejecución de comandos GIT

Page 20: Gestión de la Configuración Del Software (SCM)

GIT

Page 21: Gestión de la Configuración Del Software (SCM)

GITBranches- Línea separada de código con su propia

historia- Es un puntero a un Commit- El Branch principal y por defecto es Master- Las funcionalidades se deben desarrollar en

un Branch y después incorporarlas al Master

Page 22: Gestión de la Configuración Del Software (SCM)

GIT

Branches

Page 23: Gestión de la Configuración Del Software (SCM)

GIT

Branches

Se realizan dos commits y esa es la estructuradel árbol

Page 24: Gestión de la Configuración Del Software (SCM)

GIT

Branches

Se crea un branch "funcionalidad"

Page 25: Gestión de la Configuración Del Software (SCM)

GIT

Branches

Page 26: Gestión de la Configuración Del Software (SCM)

GIT

Branches - Merge

Page 27: Gestión de la Configuración Del Software (SCM)

GIT

Branches – Merge sin conflicto

Page 28: Gestión de la Configuración Del Software (SCM)

GIT

Branches – Merge sin conflicto

• Se puede eliminar el branch

Page 29: Gestión de la Configuración Del Software (SCM)

GIT

Branches – MergeSe creó otro Branch desde el commit 3Los commits 6 y 7 realizan modificaciones en los mismos archivos que los commits 4 y 5

Page 30: Gestión de la Configuración Del Software (SCM)

GIT

Branches - Merge

Page 31: Gestión de la Configuración Del Software (SCM)

GIT

Branches – Merge – Con Conflicto

• Analizar el conflicto con herramienta adecuada

Page 32: Gestión de la Configuración Del Software (SCM)

GIT

Ej. eGIT

Page 33: Gestión de la Configuración Del Software (SCM)

GIT

Branches – Merge – con conflicto

• Resolver el conflicto y realizar el commit con loscambios a conservar

Page 34: Gestión de la Configuración Del Software (SCM)

GIT

Branches – Merge – con conflicto

•Se puede eliminar el branch

Page 35: Gestión de la Configuración Del Software (SCM)

GIT - Tags

Tags

•Sirven para marcar puntos en la historia

Page 36: Gestión de la Configuración Del Software (SCM)

GIT - Tags

• Para hacerla visible al resto hay que compartirla

Page 37: Gestión de la Configuración Del Software (SCM)

GIT

GitLab y GitHub son manejadores web de repositorios git.GitLab es la instalación central de Git en la Facultad de Ingeniería - https://gitlab.fing.edu.uy/Se debe configurar una clave pública para acceder vía ssh, se puede acceder via https.GitHub ofrece una herramienta gratuita para aprender a usar git (https://try.github.io/)

Page 38: Gestión de la Configuración Del Software (SCM)

Referencias

GIT - https://git-scm.com/documentation

Pro GIT Book - https://git-scm.com/book/es/v2

eGIT User Guide -https://wiki.eclipse.org/EGit/User_Guide