[ES] Control de versiones con subversion

download [ES] Control de versiones con  subversion

of 36

  • date post

    12-Jun-2015
  • Category

    Technology

  • view

    1.578
  • download

    1

Embed Size (px)

description

La carrera de ingeniería de software de la Universidad Abierta para adultos (UAPA), Santiago, ha estado desarrollando el tema "Como ser productivos con Software Libre". La temática llevada a cabo se ha basado en una serie de charlas impartidas por personas relacionadas al software libre. Participé con el tema Control de versiones con Subversion. Iniciamos con los conceptos generales de sistemas de control de versiones y luego con una explicación detallada del funcionamiento de Subversion.

Transcript of [ES] Control de versiones con subversion

  • 1. Control de Versiones conSubversionEudris Cabrera Rodrguez Desarrollador de Software / Consultor Informtico 13 Octubre 2013, Santiago de los Caballeros, R. D.

2. Eudris Cabrera Rodrguez Egresado de la carrera de Ingeniera Telemtica de la PUCMM en el 2006. Desarrollador Java EE / SE desde hace ms de 6 aos, laborando para prestigiosas empresas; Cementos Cibao, 8A, Edenorte Dominicana, entre otras. Desarrollador Informtico / Consultor en PAFI (Programa de Administracin Financiera Integrada / Ministerio de Hacienda). Entusiasta de la tecnologa y software libre. Un apasionado del aprendizaje, que cree en la cultura de compartir conocimientos, ensear y aprender de los dems. 3. Responsabilidades Los conceptos y juicios de valor emitidos en esta presentacin son responsabilidad personal y no se puede entender como una posicin oficial de alguna empresa con la que he tenido relacin laboral.Asuntos Legales Todas las marcas registradas, as como todos los logotipos, imgenes, fotografas, audio y vdeos mostrados en esta presentacin son propiedad de sus respectivos propietarios. Su utilizacin es solamente para fines ilustrativos y no pretendo dar a entender cualquier afiliacin con esas empresas. 4. Contenido Qu es un sistema de control de versiones ? Clasificacin Evolucin Terminologas comunes Por qu son necesarios? Ventajas Subversion (SVN) Arquitectura Estructura del repositorio Servidor Subversion (SVN) Instalacin del Cliente (SVN) Recomendaciones Conclusiones 5. Qu es un sistema de control de versiones ?Es un software que administra el acceso a un conjunto de archivos, y mantiene un historial de cambios realizados. Se llama control de versiones a la gestin de los diversos cambios que se realizan sobre los elementos de algn producto o una configuracin del mismo. El control de versiones es til para guardar cualquier documento que cambie con frecuencia, como una novela, o el cdigo fuente de un programa. 6. Caractersticas Un sistema de control de versiones debe proporcionar: Mecanismo de almacenaje de los elementos que deba gestionar (ej. archivos de texto,imgenes, documentacin...) Posibilidad de realizar cambios sobre los elementos almacenados (ej. modificaciones parciales, aadir, borrar, renombrar o mover elementos) Registro histrico de las acciones realizadas con cada elemento o conjunto de elementos (normalmente pudiendo volver o extraer un estado anterior del producto) 7. ClasificacinLa principal clasificacin que se puede establecer est basada en la forma de almacenamiento de los repositorios. 8. CentralizadosExiste un repositorio centralizado de todo el cdigo, del cual es responsable un nico usuario (o conjunto de ellos). Se facilitan las tareas administrativas a cambio de reducir la potencia y flexibilidad, pues todas las decisiones fuertes (como crear una nueva rama) necesitan la aprobacin del responsable. Algunos ejemplos son CVS y Subversion. 9. Flujo de trabajo centralizado 10. Cmo funciona ?Normalmente consiste en una copia maestra en un repositorio central, y un programa cliente con el que cada usuario sincroniza su copia local. Esto permite compartir los cambios sobre un mismo conjunto de archivos. Adems, el repositorio guarda registro de los cambios realizados por cada usuario, y permite volver a un estado anterior en caso de necesidad. 11. DistribuidosCada usuario tiene su propio repositorio. Los distintos repositorios pueden intercambiar y mezclar revisiones entre ellos. Es frecuente el uso de un repositorio, que est normalmente disponible, que sirve de punto de sincronizacin de los distintos repositorios locales. Ejemplos: Git, Mercurial y Bazaar. 12. Flujos de trabajo distribuidos 13. Evolucin 14. Terminologas comunes Repositorio Version o Revisin Conflicto Resolver Trunk o Rama Principal Braches o bifurcaciones (ramas) Tag o Rotulado (Etiquetado) Merge o Fusin Desplegar (Check-out, checkout) Publicar o Enviar (commit, check-in) Lista de cambios (changelist, change set, patch) Actualizacin (sync update) 15. Prcticas Obsoletas Mantener un backup en computadoras o servidores diferentes, as como tambin, guardar copia en disco compactos o disco externos. Crear aplicaciones in-house para manejar las versiones de tu cdigo, quizs sea una buena opcin pero est reinventando la rueda, ya que existen opciones open source para manejar versiones. Guardar los fuentes en Dropbox. Una solucin usada en los ltimos tiempos por los programadores. Dropbox internamente funciona como un manejador de versiones pero tiene sus limitantes en el uso que puede darle un desarrollador. 16. Por qu son necesarios? Actualiza archivos modificados Historial de cambios Copias de seguridad centralizadas Acceso remoto Seguridad 17. Ventajas La ventaja ms obvia de usar control de versiones es la posibilidad de tener un nmero ilimitado de personas que trabajan en la misma base de cdigo, sin tener que enviar constantemente los archivos de ida y vuelta. Desarrolladores y otros profesionales que manejan archivos a los cuales se le realizan cambios constantemente, pueden beneficiarse del uso de los sistemas de control de versiones para guardar copias de sus archivos, diseos, libros, etc. Usted puede navegar por los cambios anteriores realizado a su repositorio y volver a versiones anteriores si pasa algo. 18. PopularidadZeroTurnaround Developer Productivity Report 2013 19. Subversion (SVN) Desarrollador: Comunidad, y desarrolladores de CollabNet, Elego, VisualSVN, WANdisco Url: http://subversion.apache.org Lanzamiento inicial : 20 de octubre de 2000 Programado en C. Sistema operativo: Multiplataforma Licencia: Licencia Apache 20. Subversion se cre para igualar y mejorar la funcionalidad de CVS, preservando su filosofa de desarrollo. Su desarrollo comenz en el ao 2000 como proyecto de cdigo abierto apadrinado por CollabNet. El lder del equipo de desarrollo fue Karl Fogel, autor de Open Source Development with CVS y fundador de Cyclic Software (compaa de desarrollo y soporte comercial para CVS. 21. Arquitectura de Subversion 22. Probablemente sea el sistema de control de versiones con la adopcin ms amplia. La mayora de los proyectos de cdigo abierto utiliza Subversion como repositorio. Google Code utiliza Subversion exclusivamente para distribuir cdigo. Otros proyectos de mayor envergadura, como SourceForge, Apache, y muchos otros tambin lo utilizan. 23. Estructura del repositorio SVN 24. Estructura del repositorio SVN 25. Configuracin de SVN 26. Servidor Subversion (SVN) Para obtener un servidor subversion tienes varias opciones:Crear una cuenta en un servicio de alojamiento gratuito. Ejemplo: https://www.assembla.com/home http://unfuddle.com/ http://www.cloudbees.com 27. Servidor Subversion (SVN) Configurar tu propio servidor en tu red local: Existen muchos recursos que te permitirn configurar tu propio servidor de versiones en tu red local, el siguiente tutorial es una excelente gua para instalar un servidor subversion en ubuntu server 12.04 http://rbgeek.wordpress.com/2012/05/01/svn-server-on-ubuntu-12-04-lts-withweb-access/ 28. Instalacin del Cliente (SVN) Instalar cliente de Subversion para S.Os Windows o para el sistema operativo de tu preferencia.Descargar: TortoiseSVN http://tortoisesvn.net/downloads.html Tambin podra usar las herramientas que nos ofrece wandisco, SmartSVN y Vanilla Subversion (Command Line): http://www.wandisco.com/subversion/download 29. Ciclo bsico de trabajo 30. Subversion en la prctica 31. Recomendaciones No utilizar el control de versiones como un sistema de backup. Enviar los cambios al servidor cuando conformen una unidad lgica. Ser preciso en los comentarios. Mantener la rama principal de proyecto sin errores de compilacin. 32. Conclusiones Desarrollar un software implica invertir mucho tiempo y dinero. No proteger el cdigo fuente con un sistema de control de versiones es irresponsable y puede traer graves consecuencias. Cualquier persona que trabaje con archivos que son sometidos a cambios constantemente pueden beneficiarse del uso de los sistemas de control de versiones para guardar copias de sus archivos, diseos, libros, etc. Existen sistemas de control de versiones de cdigo abierto, libre distribucin y amplia documentacin, lo que permite su fcil implementacin y curva de aprendizaje. 33. Referencias Version Control with Subversion http://svnbook.red-bean.com/ http://subversion.tigris.org/Libro Version Control with Subversion (Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato). Ensayo "Subversion" de Alejandro Ramrez 34. Preguntas? 35. Conoce a Astive Toolkit Framework para el desarrollo de aplicaciones de voz. Ayuda a conectar Asterisk con el resto del mundo Servidor y Kit de desarrollo Java Sitio Oficial: http://astivetoolkit.orgnete a nosotros en GitHub@astivetoolkit Para contribuir de forma segura con Astive Toolkit, no olvides hacer una bifurcacin (Fork) del repositorio. 36. Contacto @eudriscabreraeudriscabrera@eudriscabrera@eudrisComunidadesEudris Cabrera Rodrguez eudris@gmail.com@letsrockjava@ecabrerar