SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Permisos de archivos completo
Permisos de archivos completoPermisos de archivos completo
Permisos de archivos completoGrecia Machaca
 
Agentes Inteligentes Fisicos
Agentes Inteligentes FisicosAgentes Inteligentes Fisicos
Agentes Inteligentes Fisicoscampus party
 
Panorámica de los procedimientos metaheurísticos - Prof. Abraham Duarte Muñoz
Panorámica de los procedimientos metaheurísticos - Prof. Abraham Duarte MuñozPanorámica de los procedimientos metaheurísticos - Prof. Abraham Duarte Muñoz
Panorámica de los procedimientos metaheurísticos - Prof. Abraham Duarte MuñozFacultad de Informática UCM
 
Introducción a la Programación en R
Introducción a la Programación en RIntroducción a la Programación en R
Introducción a la Programación en RRosa E Padilla
 
Unidad 2 técnicas para el diseño de sistemas
Unidad 2 técnicas para el diseño de sistemasUnidad 2 técnicas para el diseño de sistemas
Unidad 2 técnicas para el diseño de sistemasmezcalote
 
Interfaces De Entrada Y Salida
Interfaces De Entrada Y SalidaInterfaces De Entrada Y Salida
Interfaces De Entrada Y SalidaBigbossH
 
Alta disponibilidad-con-heartbeat
Alta disponibilidad-con-heartbeatAlta disponibilidad-con-heartbeat
Alta disponibilidad-con-heartbeatDavid Acevedo
 
Caso de Uso
Caso de UsoCaso de Uso
Caso de Usoutrilla
 
Importancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datosImportancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datospepelebu1313
 
Direccion ip
Direccion ipDireccion ip
Direccion iplaura1352
 
Algoritmo de planificación srt
Algoritmo de planificación srtAlgoritmo de planificación srt
Algoritmo de planificación srtCarlos Solano
 
Ejercicios interbloqueo
Ejercicios interbloqueoEjercicios interbloqueo
Ejercicios interbloqueoEdgar Farias
 
Alta disponibilidad y balanceo de carga en Linux
Alta disponibilidad y balanceo de carga en LinuxAlta disponibilidad y balanceo de carga en Linux
Alta disponibilidad y balanceo de carga en LinuxJavier Turégano Molina
 
metodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificialmetodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificialNoraVelasquez4
 
El kernel en los sistemas operativos
El kernel en los sistemas operativosEl kernel en los sistemas operativos
El kernel en los sistemas operativosKaren Serrano
 

Was ist angesagt? (20)

Permisos de archivos completo
Permisos de archivos completoPermisos de archivos completo
Permisos de archivos completo
 
Agentes Inteligentes Fisicos
Agentes Inteligentes FisicosAgentes Inteligentes Fisicos
Agentes Inteligentes Fisicos
 
Panorámica de los procedimientos metaheurísticos - Prof. Abraham Duarte Muñoz
Panorámica de los procedimientos metaheurísticos - Prof. Abraham Duarte MuñozPanorámica de los procedimientos metaheurísticos - Prof. Abraham Duarte Muñoz
Panorámica de los procedimientos metaheurísticos - Prof. Abraham Duarte Muñoz
 
Gestión de archivos
Gestión de archivosGestión de archivos
Gestión de archivos
 
Introducción a la Programación en R
Introducción a la Programación en RIntroducción a la Programación en R
Introducción a la Programación en R
 
Unidad 2 técnicas para el diseño de sistemas
Unidad 2 técnicas para el diseño de sistemasUnidad 2 técnicas para el diseño de sistemas
Unidad 2 técnicas para el diseño de sistemas
 
Interfaces De Entrada Y Salida
Interfaces De Entrada Y SalidaInterfaces De Entrada Y Salida
Interfaces De Entrada Y Salida
 
Rational rose
Rational roseRational rose
Rational rose
 
Alta disponibilidad-con-heartbeat
Alta disponibilidad-con-heartbeatAlta disponibilidad-con-heartbeat
Alta disponibilidad-con-heartbeat
 
Caso de Uso
Caso de UsoCaso de Uso
Caso de Uso
 
Protocolo de capa 3
Protocolo de capa 3Protocolo de capa 3
Protocolo de capa 3
 
Importancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datosImportancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datos
 
Direccion ip
Direccion ipDireccion ip
Direccion ip
 
Algoritmo de planificación srt
Algoritmo de planificación srtAlgoritmo de planificación srt
Algoritmo de planificación srt
 
Ejercicios interbloqueo
Ejercicios interbloqueoEjercicios interbloqueo
Ejercicios interbloqueo
 
Alta disponibilidad y balanceo de carga en Linux
Alta disponibilidad y balanceo de carga en LinuxAlta disponibilidad y balanceo de carga en Linux
Alta disponibilidad y balanceo de carga en Linux
 
metodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificialmetodos de busqueda en inteligencia artificial
metodos de busqueda en inteligencia artificial
 
Modos de direccionamiento y formatos
Modos de direccionamiento y formatosModos de direccionamiento y formatos
Modos de direccionamiento y formatos
 
El kernel en los sistemas operativos
El kernel en los sistemas operativosEl kernel en los sistemas operativos
El kernel en los sistemas operativos
 
Base de datos tienda de abarrotes
Base de datos tienda de abarrotesBase de datos tienda de abarrotes
Base de datos tienda de abarrotes
 

Andere mochten auch

Andere mochten auch (20)

Actividad1
Actividad1Actividad1
Actividad1
 
Lessons learned, PIONEERS UNPLUGGED, 11.04.2013
Lessons learned, PIONEERS UNPLUGGED, 11.04.2013Lessons learned, PIONEERS UNPLUGGED, 11.04.2013
Lessons learned, PIONEERS UNPLUGGED, 11.04.2013
 
Virus informaticos
Virus informaticosVirus informaticos
Virus informaticos
 
Dees jr,michael d4
Dees jr,michael d4Dees jr,michael d4
Dees jr,michael d4
 
Exposicion multimedia
Exposicion multimediaExposicion multimedia
Exposicion multimedia
 
To master sha
To master shaTo master sha
To master sha
 
What is in the mine
What is in the mineWhat is in the mine
What is in the mine
 
Aprendizaje colaborativo
Aprendizaje colaborativoAprendizaje colaborativo
Aprendizaje colaborativo
 
Características del arte gótico
Características del arte góticoCaracterísticas del arte gótico
Características del arte gótico
 
rhouseh_Module3_webeval
rhouseh_Module3_webevalrhouseh_Module3_webeval
rhouseh_Module3_webeval
 
La tierra
La tierraLa tierra
La tierra
 
Pdhpe rationale
Pdhpe rationalePdhpe rationale
Pdhpe rationale
 
Hiperactividad - TDAH
Hiperactividad - TDAHHiperactividad - TDAH
Hiperactividad - TDAH
 
Script for film
Script for film Script for film
Script for film
 
Segundo Ex. parcial Derlis Riquelme
Segundo Ex. parcial Derlis RiquelmeSegundo Ex. parcial Derlis Riquelme
Segundo Ex. parcial Derlis Riquelme
 
Folder2
Folder2Folder2
Folder2
 
Automating development-operations-v1
Automating development-operations-v1Automating development-operations-v1
Automating development-operations-v1
 
Tax collection enforcement
Tax collection enforcementTax collection enforcement
Tax collection enforcement
 
La tierra
La tierraLa tierra
La tierra
 
La tierra
La tierraLa tierra
La tierra
 

Ähnlich wie [ES] Control de versiones con subversion

Control de versiones con git
Control de versiones con gitControl de versiones con git
Control de versiones con gitEudris Cabrera
 
[ES] Sistemas de control de versiones
[ES] Sistemas de control de versiones[ES] Sistemas de control de versiones
[ES] Sistemas de control de versionesEudris Cabrera
 
[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven[ES] Primeros pasos con Maven
[ES] Primeros pasos con MavenEudris Cabrera
 
Sistemas para el Control de Versiones de Código
Sistemas para el Control de Versiones de CódigoSistemas para el Control de Versiones de Código
Sistemas para el Control de Versiones de CódigoJesus Castagnetto
 
Técnicas avanzadas de control de versiones
Técnicas avanzadas de control de versionesTécnicas avanzadas de control de versiones
Técnicas avanzadas de control de versionesAngel Armenta
 
PPT Git GitHub
PPT Git GitHubPPT Git GitHub
PPT Git GitHubdrsevilla
 
Desarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDesarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDaniel Cruz
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasJosé Moreno
 
Dev ops with Data
Dev ops with DataDev ops with Data
Dev ops with Datannakasone
 
Subversion - buenas prácticas
Subversion - buenas prácticasSubversion - buenas prácticas
Subversion - buenas prácticasIker Canarias
 
HERRAMIENTAS CASE.pdf
HERRAMIENTAS CASE.pdfHERRAMIENTAS CASE.pdf
HERRAMIENTAS CASE.pdfCarmenKeim2
 
Semana 4 control de versiones planificacion y gestion
Semana 4 control de versiones planificacion y gestionSemana 4 control de versiones planificacion y gestion
Semana 4 control de versiones planificacion y gestionGiovani Ramirez
 
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Leonardo J. Caballero G.
 

Ähnlich wie [ES] Control de versiones con subversion (20)

Control de versiones con git
Control de versiones con gitControl de versiones con git
Control de versiones con git
 
[ES] Sistemas de control de versiones
[ES] Sistemas de control de versiones[ES] Sistemas de control de versiones
[ES] Sistemas de control de versiones
 
[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven
 
Versionamiento
VersionamientoVersionamiento
Versionamiento
 
Sistemas para el Control de Versiones de Código
Sistemas para el Control de Versiones de CódigoSistemas para el Control de Versiones de Código
Sistemas para el Control de Versiones de Código
 
Técnicas avanzadas de control de versiones
Técnicas avanzadas de control de versionesTécnicas avanzadas de control de versiones
Técnicas avanzadas de control de versiones
 
PPT Git GitHub
PPT Git GitHubPPT Git GitHub
PPT Git GitHub
 
Desarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDesarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nube
 
S14-DAW-2022S1.pptx
S14-DAW-2022S1.pptxS14-DAW-2022S1.pptx
S14-DAW-2022S1.pptx
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones Seguras
 
DevOps: una breve introducción
DevOps: una breve introducciónDevOps: una breve introducción
DevOps: una breve introducción
 
Dev ops with Data
Dev ops with DataDev ops with Data
Dev ops with Data
 
Subversion - buenas prácticas
Subversion - buenas prácticasSubversion - buenas prácticas
Subversion - buenas prácticas
 
Subversion
SubversionSubversion
Subversion
 
Uf2216 04-git
Uf2216 04-gitUf2216 04-git
Uf2216 04-git
 
HERRAMIENTAS CASE.pdf
HERRAMIENTAS CASE.pdfHERRAMIENTAS CASE.pdf
HERRAMIENTAS CASE.pdf
 
Semana 4 control de versiones planificacion y gestion
Semana 4 control de versiones planificacion y gestionSemana 4 control de versiones planificacion y gestion
Semana 4 control de versiones planificacion y gestion
 
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
 
Tema 1 Control de Versiones
Tema 1 Control de VersionesTema 1 Control de Versiones
Tema 1 Control de Versiones
 
Net Beans
Net BeansNet Beans
Net Beans
 

Kürzlich hochgeladen

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 

Kürzlich hochgeladen (13)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 

[ES] Control de versiones con subversion

  • 1. Control de Versiones con Subversion Eudris Cabrera Rodríguez Desarrollador de Software / Consultor Informático 13 Octubre 2013, Santiago de los Caballeros, R. D.
  • 2. 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.
  • 3. 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.
  • 4. 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
  • 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 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.
  • 6. 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)
  • 7. Clasificación La principal clasificación que se puede establecer está basada en la forma de almacenamiento de los repositorios.
  • 8. 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.
  • 9. Flujo de trabajo centralizado
  • 10. ¿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.
  • 11. 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.
  • 12. Flujos de trabajo distribuidos
  • 14. 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)
  • 15. 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.
  • 16. ¿Por qué son necesarios? ❏ Actualiza archivos modificados ❏ Historial de cambios ❏ Copias de seguridad centralizadas ❏ Acceso remoto ❏ Seguridad
  • 17. 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.
  • 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 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.
  • 22. 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.
  • 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 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/
  • 28. 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
  • 29. Ciclo básico de trabajo
  • 30. Subversion en la práctica
  • 31. 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.
  • 32. 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.
  • 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 Ramírez
  • 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.org Únete a nosotros en GitHub @astivetoolkit Para contribuir de forma segura con Astive Toolkit, no olvides hacer una bifurcación (Fork) del repositorio.