Gestión de la Configuración Del Software (SCM)
Transcript of Gestión de la Configuración Del Software (SCM)
![Page 1: Gestión de la Configuración Del Software (SCM)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/1.jpg)
Gestión de la ConfiguraciónDel Software (SCM)
Taller de Programación 2021
![Page 2: Gestión de la Configuración Del Software (SCM)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/2.jpg)
Agenda
- SCM- Herramientas SCM- GIT
![Page 3: Gestión de la Configuración Del Software (SCM)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/3.jpg)
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)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/4.jpg)
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)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/5.jpg)
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)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/6.jpg)
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)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/7.jpg)
Herramientas SCM
Versión Principal y Ramas
![Page 8: Gestión de la Configuración Del Software (SCM)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/8.jpg)
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)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/9.jpg)
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)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/10.jpg)
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)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/11.jpg)
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)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/12.jpg)
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)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/13.jpg)
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)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/14.jpg)
¿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)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/15.jpg)
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)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/16.jpg)
GIT: Estado de Archivos
![Page 17: Gestión de la Configuración Del Software (SCM)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/17.jpg)
GIT- Configurar Identidad
- eGIT
![Page 18: Gestión de la Configuración Del Software (SCM)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/18.jpg)
GIT
- Clonar Repositorio
- Crea una copia localdel repositorio remoto
Ej. eGIT
![Page 19: Gestión de la Configuración Del Software (SCM)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/19.jpg)
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)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/20.jpg)
GIT
![Page 21: Gestión de la Configuración Del Software (SCM)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/21.jpg)
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)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/22.jpg)
GIT
Branches
![Page 23: Gestión de la Configuración Del Software (SCM)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/23.jpg)
GIT
Branches
Se realizan dos commits y esa es la estructuradel árbol
![Page 24: Gestión de la Configuración Del Software (SCM)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/24.jpg)
GIT
Branches
Se crea un branch "funcionalidad"
![Page 25: Gestión de la Configuración Del Software (SCM)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/25.jpg)
GIT
Branches
![Page 26: Gestión de la Configuración Del Software (SCM)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/26.jpg)
GIT
Branches - Merge
![Page 27: Gestión de la Configuración Del Software (SCM)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/27.jpg)
GIT
Branches – Merge sin conflicto
![Page 28: Gestión de la Configuración Del Software (SCM)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/28.jpg)
GIT
Branches – Merge sin conflicto
• Se puede eliminar el branch
![Page 29: Gestión de la Configuración Del Software (SCM)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/29.jpg)
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)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/30.jpg)
GIT
Branches - Merge
![Page 31: Gestión de la Configuración Del Software (SCM)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/31.jpg)
GIT
Branches – Merge – Con Conflicto
• Analizar el conflicto con herramienta adecuada
![Page 32: Gestión de la Configuración Del Software (SCM)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/32.jpg)
GIT
Ej. eGIT
![Page 33: Gestión de la Configuración Del Software (SCM)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/33.jpg)
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)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/34.jpg)
GIT
Branches – Merge – con conflicto
•Se puede eliminar el branch
![Page 35: Gestión de la Configuración Del Software (SCM)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/35.jpg)
GIT - Tags
Tags
•Sirven para marcar puntos en la historia
![Page 36: Gestión de la Configuración Del Software (SCM)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/36.jpg)
GIT - Tags
• Para hacerla visible al resto hay que compartirla
![Page 37: Gestión de la Configuración Del Software (SCM)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/37.jpg)
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)](https://reader031.fdocuments.mx/reader031/viewer/2022012117/61dd4858f29fcc18687e74ba/html5/thumbnails/38.jpg)
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