Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porCristina Escobar Aguilera Modificado hace 7 años
1
Control de versiones y Subversion José Luis López Pino Fco Javier Lucena Lucena
2
Índice Introducción Clasificación Acciones Comunes Problema - Sobreescritura Conflictos Ramas Etiquetas (Tags) Manos a la Obra !
3
¿Qué es el control de versiones?
4
Repositorio Un repositorio, depósito o archivo es un sitio centralizado donde se almacena y mantiene información digital, habitualmente bases de datos o archivos informáticos Subversion es un repositorio en forma de árbol con una jerarquía de directorios y archivos.
5
Repositorio
6
¿Qué es el control de versiones? ”El control de versiones es el arte del manejo de los cambios en la información”. Gestiona archivos y directorios, y sus cambios a través del tiempo. Herramienta crítica para los programadores. Facilita volver a una versión anterior. Facilita el trabajo colaborativo. Se envían sólo las diferencias realizadas. El control de versiones no sólo es necesario para el software.
7
Clasificación http://www.infoq.com/articles/dvcs-guide
8
Clasificación: centralizados Un poco más sencillos de utilizar que los distribuidos. Se tiene un control total sobre las versiones. Limitaciones en el acceso. Puede haber menos conflictos a resolver. Ejemplos: CVS y Subversion.
9
Clasificación: distribuidos Se puede trabajar de forma local. Operaciones locales más rápidas, no se usa red. No necesitas permiso para participar en los proyectos. No se depende de una sola máquina física. Puedes seguir teniendo un control centralizado del proyecto. Ejemplos: Git, Bazaar y Mercurial.
10
Herramientas svnCliente de línea de comandos. svnversionEstado de la copia de trabajo. svnlookInspeccionar un repositorio. svnadminCrear, modificar o reparar repos. svnserveServidor.
11
Acciones comunes Revisión (revision): Es una “instantánea” del repositorio en un momento particular en el tiempo, cada vez que el servidor acepta un envío se crea una nueva revisión. Para identificarlas se utilizan números desde el 0. Copia de trabajo (working copy): Copia local y privada de los archivos y directorios del repositorio. A ella se incorporarán los cambios o pondrán a disposición los tuyos cuando tú se lo indiques.
12
Acciones comunes Crear copia de trabajosvn checkout Ver diferenciassvn diff Deshacer cambios localessvn revert Subir nueva versiónsvn commit Sincronizar con repos.svn update Mensajes de logsvn log Gestionar ficherossvn add | delete Copiar Moversvn move | copy Ver ficheros modificadossvn status ¡Ayuda! svn help
13
Estructura común del repositorio Hay maneras estándar recomendadas para organizar un repositorio. /trunkcontendrá la “línea principal” /branchescopias de las ramas /tagscopias de las etiquetas
14
Problema: sobreescritura
15
Solución parcial: bloqueo
16
Solución: mezclar
17
Conflictos Cuando se produce conflicto nos encontramos: filename.mine”Mi” archivo filename.rOLDREVVersión original de la mía. filename.rNEWREVVersión actual en el repos. $ svn update U INSTALL Actualizado G README Unido C bar.c ¡Conflicto! Updated to revision 46.
18
Solucionando conflictos Tenemos tres opciones: Fusionar el texto en conflicto “a mano” y marcar el conflicto como resuelto (svn resolved). Copiar uno de los ficheros temporales sobre su fichero de trabajo y marcar como resuelto. Eliminar cambios locales (svn revert).
19
Ramas Rama (branch): Línea de desarrollo que existe de forma independiente a otra, pero comparte una historia común si mira suficientemente atrás en el tiempo.
20
Ramas Subversion tiene comandos para ayudarle a mantener ramas paralelas de sus ficheros y directorios. Nos evitan duplicar cambios en varias ramas. Permiten mezclar y probar diferentes líneas de desarrollo en su trabajo diario.
21
Operaciones con ramas Crear una rama svn copy Unir dos fuentes svn merge Ver diferencias antes de unirsvn diff Trasladarnos a otra ramasvn switch
22
Etiquetas Al igual que las ramas, las creamos con svn copy Etiqueta (tag): Una etiqueta no es más que una instantánea (snapshot) del proyecto en un momento de tiempo. Realmente cada revisión ya es una instantánea, pero con las etiquetas le ponemos nombres más bonitos y pueden ser de sólo un subdirectorio. En subversion, una etiqueta es realmente una nueva rama que creamos y lo almacenamos en un lugar diferente (/tags) y no realizamos cambios en ella.
23
Clientes visuales RabbitVCS (Nautilus) KDESvn (Konqueror) TortoiseSVN (Windows) RapidSVN (Linux, Windows y MacOS) Cliente integrado con los distintos EDS.
24
Servidores externos http://forja.rediris.es/ http://code.google.com/hosting/ http://sourceforge.net/ http://www.xp-dev.com/ http://savannah.gnu.org/
25
Libro Version Control with Subversion Control de versiones con Subversion Libre http://svnbook.red- bean.com/
26
Crear directorio A ser posible en /home/nombre_usuario/aaa Con los subdirectorios /trunk Varios fichero hml, cpp, java Fichero originales del proyecto Trabajaremos sobre estos ficheros /branches /tags
27
Manos a la Obra ! Consola power ! If (svn - - version == error) Sudo apt-get install subversion else svn help do svn help while (lo_recuerdo_de_la_ presentacion);
28
Creando el repositorio svnadmin create /home/fran/repositorio_nuevo cd repositorio_nuevo ls -la cd..
29
Añadir ficheros al repositorio svn import aaa file:///home/fran/repositorio_nuevo file:///home/fran/repositorio_nuevo -m ”El primer import a mi repositorio” NOTA: Importar los archivos al repositorio no convierte al árbol original de directorios y archivos en una copia local. Los archivos originales no quedan bajo control de versiones. Es necesario hacer un checkout para obtener una copia local.
30
Copia local svn checkout file:///home/fran/repositorio_nuevo/trunk file:///home/fran/repositorio_nuevo/trunk copia_local cd copia_local # ficheros del repositorio # sobre los que trabajaremos Editar los ficheros
31
Copia local svn diff Aparece cada fichero modificado en la copia_local Cada linea modificada comienza con el simbolo + svn commit Deposita la nueva version del fichero en el repositorio svn update Sincronizar la copia_local con el repositorio
32
Copia local diff
33
Copia local
35
Revisiones HEAD # última revision en el repositorio BASE # en la copia de trabajo COMMITED #ultima revision con combio PREV # commited -1 svn log - - revision 1 svn diff - -revision PREV:COMMITTED index.html svn diff - - revision HEAD Compara copia_local con el repositorio
36
Ciclo básico de trabajo Actualizar copia local svn update Hacer Cambios svn add svn delete svn copy svn move Examinar tus cambios Svn diff
37
Ciclo básico de trabajo Rectificar algunos cambios svn revert Resolver conflictos svn merge svn resolve Enviar los cambios svn commit -m ”Mi mensaje indico cambio”
38
Ejercicio svn revert Modificar un fichero Usar el comando sobre el fichero Comprobar que el fichero vuelve al estado anterior.
39
Google code hosting Crear una cuenta en Gmail Enviar correo a fran.lucena@gmail.comfran.lucena@gmail.com code.google.com/hosting El nombre del proyecto: svnosl
40
Google code
41
Añadir un fichero.html con vuestro nombre con el siguiente codigo: Sheldon Cooper
42
Ejercicio Crear un función en el fichero hola.cpp, hacer uso de ella en el main.
43
Control de asistencia Modificar fichero asistencia.txt
44
Licencia Este tutorial tiene licencia GFDL, cuyo texto puedes obtener en http://gugs.sindominio.net/licencias/gfdl-1.2-es.html Copyright © 2009 José Luis López Pino, Fco Javier Lucena Lucena. Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los términos de la Licencia de Documentación Libre de GNU, Versión 1.2 o cualquier otra versión posterior publicada por la Free Software Foundation; sin Secciones Invariantes ni Textos de Cubierta Delantera ni Textos de Cubierta.
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.