Proyecto ROOTVE V2: Control de versiones con Subversion Grupo de Investigación y Desarrollo en Seguridad de la Información - GIDSI.

Slides:



Advertisements
Presentaciones similares
Subversion (SVN) Sistema de Control de Versiones Sucesor de CVS
Advertisements

Control de versiones con Subversion
Proyecto de Software Configuration Management
Control de versiones con Subversion v1.1 © 2012.SOPORTE. DIS. Ronald De La Cruz Cueva Equipo de Soporte USMP.
The Poker Game Trabajo en equipo con Google Code.
Agenda Problemas Comunes
1 Víctor Aravena Díaz. 2 Objetivo Conocer sobre el uso de la gestión de la configuración. Utilizar SVN desde eclipse. SVN.
Subversion (SVN) Sistema de Control de Versiones Sucesor de CVS.
Maven Build & Deployment Part II
Uso de TortoiseSVN Gerencia SCM.
Trabajo Visual SVN Server
Integrantes: Arce Diego Chiguano Cristian Freire Santiago Herrera Ernesto Padilla Lorena Paucar Juan Sosa Daniela Tarapués Damaris Uvidia Daisy Vargas.
Trabajo de investigación
Administración de Software Administración de Software / Casos Reales Pág 1 La seguridad físca PROGRAMACION CASOS DE LA VIDA REAL.
Una guía para comenzar a utilizar Subversion
Lcda. Ingrid Graü Diseño de Sistemas 1. Lcda. Ingrid Graü Diseño de Sistemas 2.
Sistema de control de versiones CVS y Subvesion. Definición: Control de versiones Un sistema de control de versiones es un sistema de gestión de múltiples.
Control de Versiones Utilizando SVN. ELO329 - Diseño y Programación Orientado a Objetos 2 Control de Versiones ”Se llama control de versiones a la gestión.
CMS ABIERTO Y CMS CERRADO MARÍA CAMILA MUÑOZ U TATIANA ARIAS CHAPARRO U CAROLINA FIGUEROA U
Control de versiones y Subversion José Luis López Pino Fco Javier Lucena Lucena.
Sméagol el gestor de reservas Jornadas Técnicas de RedIRIS noviembre de 2009 Càtedra de Programari Lliure Universitat Politècnica de Catalunya.
PRESENTACIÓN DRUPAL Versión 0.1 Por Ricardo Chang.
Primer Taller de desarrollo con Software Libre Posadas - Misiones José Luís Di Biase Héctor Daniel Sanchez
Trabajo de mantenimiento Presentado por: Daniel elejalde Víctor Manuel puentes.
Usando software libre. Conceptos Básicos Software Libre Se trata de libertades Plantea 4 libertades: Libertad 0: Libertad de usar el programa, con cualquier.
COMUNICACIÓN Y TIC Ángela Espinosa Hayler Peñaranda.
Sponsors Agradecimiento especial Mejores prácticas de SQL Server para SharePoint On Premise Alberto De Rossi MCP / MCT SQL Server.
NIA Planeación de una auditoria de Estados Financieros. NOMBRE: Beatriz Acero Zapana CURSO: Auditoria Financiera ESCUELA: Ciencias Contables y Financiera.
Áreas de Trabajo y Caso Hipotético
Introducción a Sistemas Operativos
FORMACIÓN GIT “setting” a dalt!.
SEGURIDAD SQL Usuarios, privilegios y perfiles.
GRUPO 18 GIT INTEGRANTES: JALDIN PANIAGUA LUIS MIGUEL
ECLIPSE.
U.T. 11: Introducción A Las Bases De Datos
ARQUITECTURA DE COMPUTADORES
Almacenamiento en la nube
CARRERA DE INGENIERÍA EN SISTEMAS E INFORMÁTICA
Unidad I Herramientas de la web 2.0.
INTRODUCCIÒN AL SISTEMA GESTOR DE BASE DE DATOS
Novell Netware Autores: Cerrina Maria Josefina, Coto Marcelo,
Tutorial Holdings Management (Administración de Colecciones)
CMS CMS son las siglas de Content Management System, o lo que viene a ser un sistema de gestión de contenidos. Un CMS es un programa desarrollado para.
Modelo de 3 capas. Qué es la arquitectura de una aplicación? La arquitectura se refiere a la forma en la que es diseñada tanto física como lógicamente.
Actividad 3 Herramienta tarea
Conalep plantel Zitácuaro 240
Parte 4 HTML.
Conceptos Relacionados Unidad I. Parte A.
Servicios SFTP/SCP. Gustavo Antequera Rodríguez.
Computación Nivel Usuario CB-123
A RQUITECTURA C LIENTE - SERVIDOR La arquitectura del cliente servidor se divide en dos partes Los promovedores de recursos o servicios llamados servidores.
Sistemas de Seguridad Informática
CREACIÓN DE SOFTWARE USO DEL DESARROLLADOR. PROGRAMA PARA REALIZAR OPERACIONES.
1 Dirección IP - Características Las direcciones IP se denominan direcciones lógicas. Tienen un direccionamiento Jerárquico. Representan una conexión de.
Tema: Componentes lógicos de un ordenador. Mediante el sistema de numeración binario, es decir, usando los dígitos 0 y 1. Lo único que transmite,
Generaciones de Bases de Datos
PROYECTO DE GRADUACIÓN
SOPORTE TÉCNICO Y SERVICIO AL CLIENTE. Dentro de la fase de Operación del Servicio se encuentran las siguientes funciones :
Zegelipae.edu.pe. Aseguramiento de la Calidad Sesión 6.
Tema: Administración de la configuración de software UNIVERSIDAD TECNOLÓGICA ISRAEL CALIDAD DE SOFTWARE.
ESTRUCTURA DE SISTEMAS OPERATIVOS Carbajal Rojas karla.
Docente: Valerio Herrera, Luis E. Experiencia Formativa III Semana 4: Servidores Web.
HERRAMIENTAS BASICAS DISEÑO SITIOS WEB. CARACTERÍSTICAS Básicamente una página web puede construirse con un simple editor de texto (como puede ser el.
SERVICIOS DE ALMACENAMIENTO EN LA NUBE DE QUE SE TRATA El Almacenamiento en la Nube consiste en guardar archivos en un lugar de Internet. Esos lugares.
PROYECTO DE GRADUACIÓN
Desarrollo de Sistemas de Información Contable - Sis USB 1 METODOLOGIAS DE DESARROLLO DE SOFTWARE.
Agustín J. González ELO-329
Desarrollo de Sistemas de Información Contable - Sis USB 1 METODOLOGIAS DE DESARROLLO DE SOFTWARE.
PROYECTO DE GRADUACIÓN
UNIVERSIDAD PRIVADA SAN JUAN BAUTISTA FILIAL CHINCHA ESCUELA PROFESIONAL DE INGENIERÍA DE COMPUTACIÓN Y SISTEMAS Por: Nestares Torres Luis Jesús Enrique.
Transcripción de la presentación:

Proyecto ROOTVE V2: Control de versiones con Subversion Grupo de Investigación y Desarrollo en Seguridad de la Información - GIDSI

Agenda Seguimiento proyecto ROOTVE V2 Subversion –Organización del repositorio –Ramas (branches) y Etiquetas (tags) –Buenas prácticas en Subversion –¿Cúando crear ramas? –Estrategias para definición de ramas Discusión y selección de estrategias para ramas del proyecto

Seguimiento proyecto ROOTVE V2 Uso del sistema TRAC

Subversion Sistema centralizado para compartir información El núcleo es un repositorio; control de versiones Almacenamiento de información bajo un árbol de sistema de archivos Conexiones de clientes al repositorio

Subversion: URLs

Subversion: un repositorio

Subversion: copia de trabajo Arbol de directorio local Espacio de trabajo privado del usuario Comandos disponibles para publicar cambios y obtener cambios –checkout, commit, update

Subversion: revisiones Publicación de cambios a archivos o directorios en una sola transacción Generadas por un commit Refleja un nuevo estado del árbol del sistema de archivos Tienen asociadas un número: –Revisión N -> estado del repositorio después del commit N

Subversion: revisiones

Organización del repositorio

Ramas (branches) Básicamente una línea de desarrollo que existe independientemente de otra línea Historia común

Ramas (branches) La creación de una rama no es más que la copia del proyecto en el repositorio: –svn copy Sobre una rama se pueden ejecutar las mismas operaciones que sobre el trunk

Ramas (branches)

Ramas (branches)

Ramas (branches) Subversion no conoce las nociones de ramas ni tags: –Sólo conoce de copias de directorios Las ramas son nociones que los humanos damos a las copias de directorios Las ramas existen como directorios en el árbol del sistema de archivos del repositorio Por convensión se colocan en /branches Las ramas son susceptibles de actualizarse

Merging es el acto de reconciliar múltiples cambios hechos a copias diferentes de un mismo archivo Los cambios de una rama se pueden replicar en el /trunk con: –svn merge Merging (~ fusionar/fundir)

Una etiqueta corresponde a una instantánea del proyecto en el tiempo Se asignan nombres “amigables” para los usuarios: –p.ej: rootve Generalmente utilizadas para release de versiones de software Se ubican en /tags dentro del repositorio Etiquetas (tags)

Utilizar una organización del repositorio con una raíz de proyecto: –/trunk, /branches y /tags “Commit” cambios lógicos: –reflejar un propósito específico Establecer enlaces entre los cambios de subversion y el sistema de tickets Utilizar los mensajes de log para commit y merge Buenas prácticas en Subversión

Depende de la naturaleza del proyecto de software Se proponen momentos de acuerdo al sistema: ¿Cuándo crear ramas? 1.- The Never-Branch system –Los usuarios hacen commit del trabajo dirario sobre /trunk. –Ocasionalmente el /trunk no compila o genera errores con cambios complicados

¿Cuándo crear ramas? 2.- The Always-Branch system –Cada usuario trabaja sobre una rama privada para cada tarea de codificación –Cuando el código se completa, “alguien” revisa los cambios de la rama y los fusiona (merges) en el /trunk Aquí se garantiza que el /trunk sea estable la mayor parte del tiempo, pero pueden ocurrir conflictos al fusionar

¿Cuándo crear ramas? 3.- The Branch-When-Needed system –Los usuarios hacen commit el trabajo diario sobre /trunk –Regla1: /trunk debe compilar y pasar pruebas –Regla2: Un commit no debe ser muy “largo”; debería ser concreto –Si hay un conflicto con regla1 y regla2 el usuario debería crear una nueva rama y hacer commit de los cambios allí Aquí se garantiza que el /trunk sea estable la mayor parte del tiempo y los conflictos de fusionar son raros

¿Cuándo crear ramas? Se pueden considerar ramas desde el punto de vista de: –Release: basadas en release –Feature: basadas en características o funcionalidades

¿Cuándo crear ramas? Release: –Desarrolladores colocan trabajo diario, nuevas características, corrección de errores en /trunk –Cuando se decide que el software está listo para release se copia /trunk a /branches/1.0 –Trabajo en paralelo. Los errores aparecidos en cualquier rama se corrigen y se portan a las otras (merge) –Se congela la rama y se libera como un tag: /tags/1.0.0 –La rama /branches/1.0 se mantiene a lo largo del tiempo. El trabajo en /trunk continua, correcciones de errores son portadas a /branches/1.0 para luego liberar /tags/1.0.1

¿Cuándo crear ramas? Feature: –Rama temporal creada sólo para trabajar en cambios complejos sin interferir con la estabilidad del /trunk –Se crean, se utilizan por un tiempo, se fusionan de regreso con el tronco y finalmente son borradas –Desventaja: el código del tronco es, con frecuencia, inestable

Estrategias para definición de ramas Tronco Inestable

Estrategias para definición de ramas Tronco Estable

Recomendaciones Si se decide usar ramas, hay que cuidarlas y mantenerlas Al momento de hacer un release crear una rama Si no se va a realizar una fusión desde o hacia una rama, no crear una rama sino un tag Evitar la creación de ramas para cambios simples Ejemplo práctico: mantenimiento y desarrollo-> mantener versión N mientras se desarrolla versión N+1

Discusión y selección de estrategias para ramas del proyecto En consenso debemos establecer: –Tiempo entre liberaciones –Tipo de estrategia de ramas a utilizar –Nombre de las ramas a generar –Tiempo entre actualizaciones de ramas al tronco –Tiempo entre actualizaciones de tronco a ramas –Entre otras políticas que consideremos...

v svn://seguridad.cenditel.gob.ve/var/local/svn/seguridad/rootvev2/ URL Subversion ROOTVE V2