13. Entorno de trabajo REPOSITORIO Central SVN Programador X Programador X+1 < Copias locales de trabajo >
14.
15. Control de código fuente “ Deshacer ” Etiquetado de Versiones Gestión conflictos Repositorio común
16.
Notas do Editor
Presentación: Lo que se va a contar En esta parte de la presentación se va comentar la experiencia del grupo de desarrollo GIS con la herramienta de Control de código fuente Subversion Esta herramienta se aplica desde hace 1 año a los proyectos del área, con buenos resultados y nos parece interesante COMPARTIR EXPERIENCIAS
¿Qué es un sistema de control de versiones? Un SOFTWARE que permite mantener CONTROL sobre los cambios hechos a lo largo del TIEMPO sobre un documento electrónico. SCM = Source Code Management Subversion es SOFTWARE LIBRE Y GRATUITO está especialmente diseñado para trabajar con CODIGO FUENTE (p.ej. .m de MATLAB, .c o .h de C/C++, .fichero .aspx, .py de PYTHON, .cs de .NET, XML…).
Desarrollando, es frecuente realizar cambios que pueden no estar controlados 100% al detalle de memoria. Confundirse en un fichero de código fuente, un PUNTO, una COMA, un +, es FACIL. Encontrar un cambio manualmente puede ser MUY COMPLEJO y LENTO
Solucion= A veces, hay que comparar el trabajo en un fichero fuente con otro momento (p.ej hace 1 o 2 días funcionaba) y ver las DIFERENCIAS (DIFF). En ocasiones, la solución más sencilla es simplemente, VOLVER ATRÁS = Descartar los cambios
A veces hay DESCRONTROL sobre DONDE está el CODIGO (¿Quién?¿Qué versión?) Encontrar un código no controlado es DIFICIL
Solución = Generar un lugar central, ACCESIBLE por todos (gestión de permisos) = REPOSITORIO DE FUENTES Organizar el repositorio POR PROYECTO, POR ÁREA, etc. Lo que sirve es LO QUE ESTÁ EN REPOSITORIO.
Mostrar últimos avances a veces es COMPLICADO, si SEGUIMOS TRABAJANDO para estabilizar el código. Sensación de NO TENEMOS NADA QUE ENSEÑAR (= sensación percibida de NO TENEMOS NADA)
Solución = Usar VERSIONADO, cuando se alcanzan bloques funcionales completos. EXPLICAR BREVE = Versionado mayor / menor / revision V1.0.X
En ocasiones hay fallos de hardware y el ordenador muere: Consecuencia: pierdes todo el contenido y tu jefe te echa ;)
Solo se pierden los cambios locales no transferidos al repositorio. Esta situación aplica también a un EQUIPO NUEVO > Una persona que se incorpora, se conecta y obtiene los fuentes.
Cuando sobre el mismo código trabajan 2 o más personas, puede haber CONFLICTOS… TE LO PASO, ME LO PASAS, LO MEJORAS… ¿Cómo se resuelve un CONFLICTO? Sin herramientas = MUCHA CALMA, TIEMPO Y BUEN PULSO…
Herramientas para CONCILIAR CAMBIOS: DIFF / MERGES
Estructura 1 REPOSITORIO > n CLIENTES El código se transmite via SERVIDOR: no usb / no disco duro / no carpeta compartida…. SUBIR = COMMIT BAJAR = UPDATE
La manera normal de trabajar: Repositorio Proyecto y CopiaLocalProyecto Estructura en: TRUNK: La línea principal de trabajo… donde trabajamos habitualmente TAGS: Cuando queremos “CONGELAR” el TRUNK en un momento concreto BRANCHES: Cuando queremos trabajar con VARIAS VERSIONES (v1.0 / v2.0 / v1.1 / v1.3 / V2.1)
RESUMEN FINAL DE FUNCIONALIDADES DE UN SCM como SUBVERSION