• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
[ES] Control de versiones con  subversion
 

[ES] Control de versiones con subversion

on

  • 713 views

La carrera de ingeniería de software de la Universidad Abierta para adultos (UAPA), Santiago, ha estado desarrollando el tema "Como ser productivos con ...

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.

Statistics

Views

Total Views
713
Views on SlideShare
713
Embed Views
0

Actions

Likes
0
Downloads
12
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    [ES] Control de versiones con  subversion [ES] Control de versiones con subversion Presentation Transcript

    • Control de Versiones con Subversion Eudris Cabrera Rodríguez Desarrollador de Software / Consultor Informático 13 Octubre 2013, Santiago de los Caballeros, R. D.
    • Eudris Cabrera Rodríguez ❏ Egresado de la carrera de Ingeniería Telemática de la PUCMM en el 2006. ❏ Desarrollador Java EE / SE desde hace más de 6 años, laborando para prestigiosas empresas; Cementos Cibao, 8A, Edenorte Dominicana, entre otras. ❏ Desarrollador Informático / Consultor en PAFI (Programa de Administración Financiera Integrada / Ministerio de Hacienda). ❏ Entusiasta de la tecnología y software libre. ❏ Un apasionado del aprendizaje, que cree en la cultura de compartir conocimientos, enseñar y aprender de los demás.
    • Responsabilidades Los conceptos y juicios de valor emitidos en esta presentación son responsabilidad personal y no se puede entender como una posición oficial de alguna empresa con la que he tenido relación laboral. Asuntos Legales Todas las marcas registradas, así como todos los logotipos, imágenes, fotografías, audio y vídeos mostrados en esta presentación son propiedad de sus respectivos propietarios. Su utilización es solamente para fines ilustrativos y no pretendo dar a entender cualquier afiliación con esas empresas.
    • Contenido ❏ ❏ ❏ ❏ ❏ ❏ ❏ ¿Qué es un sistema de control de versiones ? Clasificación Evolución Terminologías comunes ¿Por qué son necesarios? Ventajas Subversion (SVN) ❏ Arquitectura ❏ Estructura del repositorio ❏ Servidor Subversion (SVN) ❏ Instalación del Cliente (SVN) ❏ Recomendaciones ❏ Conclusiones
    • ¿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 gestión de los diversos cambios que se realizan sobre los elementos de algún producto o una configuración del mismo. El control de versiones es útil para guardar cualquier documento que cambie con frecuencia, como una novela, o el código fuente de un programa.
    • Características Un sistema de control de versiones debe proporcionar: ❏ Mecanismo de almacenaje de los elementos que deba gestionar (ej. archivos de texto,imágenes, documentación...) ❏ Posibilidad de realizar cambios sobre los elementos almacenados (ej. modificaciones parciales, añadir, borrar, renombrar o mover elementos) ❏ Registro histórico de las acciones realizadas con cada elemento o conjunto de elementos (normalmente pudiendo volver o extraer un estado anterior del producto)
    • Clasificación La principal clasificación que se puede establecer está basada en la forma de almacenamiento de los repositorios.
    • Centralizados Existe un repositorio centralizado de todo el código, 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 aprobación del responsable. Algunos ejemplos son CVS y Subversion.
    • Flujo de trabajo centralizado
    • ¿Cómo 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. Además, el repositorio guarda registro de los cambios realizados por cada usuario, y permite volver a un estado anterior en caso de necesidad.
    • Distribuidos Cada 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 sincronización de los distintos repositorios locales. Ejemplos: Git, Mercurial y Bazaar.
    • Flujos de trabajo distribuidos
    • Evolución
    • Terminologías comunes ❏ ❏ ❏ ❏ ❏ ❏ ❏ ❏ ❏ ❏ ❏ ❏ Repositorio Version o Revisión Conflicto Resolver Trunk o Rama Principal Braches o bifurcaciones (ramas) Tag o Rotulado (Etiquetado) Merge o Fusión Desplegar (Check-out, checkout) Publicar o Enviar (commit, check-in) Lista de cambios (changelist, change set, patch) Actualización (sync ó update)
    • Prácticas Obsoletas ❏ Mantener un backup en computadoras o servidores diferentes, así como también, guardar copia en disco compactos o disco externos. ❏ Crear aplicaciones in-house para manejar las versiones de tu código, quizás sea una buena opción pero está reinventando la rueda, ya que existen opciones open source para manejar versiones. ❏ Guardar los fuentes en Dropbox. Una solución 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.
    • ¿Por qué son necesarios? ❏ Actualiza archivos modificados ❏ Historial de cambios ❏ Copias de seguridad centralizadas ❏ Acceso remoto ❏ Seguridad
    • Ventajas La ventaja más obvia de usar control de versiones es la posibilidad de tener un número ilimitado de personas que trabajan en la misma base de código, 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, diseños, libros, etc. Usted puede navegar por los cambios anteriores realizado a su repositorio y volver a versiones anteriores si pasa algo.
    • Popularidad ZeroTurnaround Developer Productivity Report 2013
    • 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
    • Subversion se creó para igualar y mejorar la funcionalidad de CVS, preservando su filosofía de desarrollo. Su desarrollo comenzó en el año 2000 como proyecto de código abierto apadrinado por CollabNet. El líder del equipo de desarrollo fue Karl Fogel, autor de Open Source Development with CVS y fundador de Cyclic Software (compañía de desarrollo y soporte comercial para CVS.
    • Arquitectura de Subversion
    • Probablemente sea el sistema de control de versiones con la adopción más amplia. La mayoría de los proyectos de código abierto utiliza Subversion como repositorio. Google Code utiliza Subversion exclusivamente para distribuir código. Otros proyectos de mayor envergadura, como SourceForge, Apache, y muchos otros también lo utilizan.
    • Estructura del repositorio SVN
    • Estructura del repositorio SVN
    • Configuración de SVN
    • 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
    • Servidor Subversion (SVN) Configurar tu propio servidor en tu red local: Existen muchos recursos que te permitirán configurar tu propio servidor de versiones en tu red local, el siguiente tutorial es una excelente guía 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/
    • Instalación del Cliente (SVN) Instalar cliente de Subversion para S.O’s Windows o para el sistema operativo de tu preferencia. Descargar: TortoiseSVN http://tortoisesvn.net/downloads.html También podría usar las herramientas que nos ofrece wandisco, SmartSVN y Vanilla Subversion (Command Line): http://www.wandisco.com/subversion/download
    • Ciclo básico de trabajo
    • Subversion en la práctica
    • Recomendaciones ❏ No utilizar el control de versiones como un sistema de backup. ❏ Enviar los cambios al servidor cuando conformen una unidad lógica. ❏ Ser preciso en los comentarios. ❏ Mantener la rama principal de proyecto sin errores de compilación.
    • Conclusiones ❏ Desarrollar un software implica invertir mucho tiempo y dinero. No proteger el código 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, diseños, libros, etc. ❏ Existen sistemas de control de versiones de código abierto, libre distribución y amplia documentación, lo que permite su fácil implementación y curva de aprendizaje.
    • 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 Ramírez
    • ¿Preguntas?
    • 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.org Únete a nosotros en GitHub @astivetoolkit Para contribuir de forma segura con Astive Toolkit, no olvides hacer una bifurcación (Fork) del repositorio.
    • Contacto @eudriscabrera eudriscabrera @eudriscabrera @eudris Comunidades Eudris Cabrera Rodríguez eudris@gmail.com @letsrockjava @ecabrerar