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
¿Control de código fuente? Un gran botón “ Deshacer ”
Problemas programando…
Lo de ayer funcionaba…
¿Cómo dfg43~# lo hice?
Problemas programando…
Lo de ayer funcionaba…
Subversion = Comparar / Volver atrás
Problemas programando…
¿Dónde #^s está ese script?
Lo tenía Pipe en su pendrive! en la carpeta scriptsvWenaproyectoWTFeseScriptQueBuscas Peronosesabesifuncionanisieslaultimaversionninadadenadayesunadesesperaciontotal Fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffsdfdsfsdfdsfdsfdsfdsfsdsfsdsfdfgdgffddddddd Dddddddddddddddddddddddddddddddddddddddddddddddddsg ffff ffffffffffffffffffffffffffffffffffffffffffffsdfretreetdfdgdfg
Problemas programando…
¿Dónde #^s está ese script?
Subversion = REPOSITORIO Centralizado SVN
Problemas programando…
¿Demo imprevista?
Tengo el código a la mitad ahora no funciona, ufff…
Problemas programando…
¿Demo imprevista?
Subversion = Versión 1.0 estable de hace X días
Problemas programando…
¿Ordenador roto?
He perdido TODO el código… (y las fotos de mi último viaje… :)
Problemas programando…
¿Ordenador roto?
Subversion = Pierdes lo que NO hayas subido … con suerte NADA
Problemas programando...
Varías personas sobre el mismo código
¿Qué versión es la buena, la mía o la tuya?... ¿ NINGUNA ?
Problemas programando...
Varías personas sobre el mismo código
SUBVERSION = Se decide / compara con HERRAMIENTAS Quizá las 2 son buenas…
Entorno de trabajo REPOSITORIO Central SVN Programador X Programador X+1 < Copias locales de trabajo >
Organización del código
Trunk, Branches y Tags
repositorio/proyecto trunk/ branches/ tags/
Control de código fuente “ Deshacer ” Etiquetado de Versiones Gestión conflictos Repositorio común
0 comments
Post a comment