PDF de programación - Sistemas de Control de Versiones - Subversion

Imágen de pdf Sistemas de Control de Versiones - Subversion

Sistemas de Control de Versiones - Subversiongráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 23 de Febrero del 2018)
560 visualizaciones desde el 23 de Febrero del 2018
1,1 MB
34 paginas
Creado hace 17a (18/10/2006)
Sistemas de Control de
VersionesSubversion

Alexis Quesada Arencibia

Francisco J. Santana Pérez

¿ Qué son ?

Programas que permiten gestionar un
repositorio de archivos y sus distintas
versiones
Utilizan una arquitectura cliente-servidor

Un servidor guarda la(s) versión(es)
actual(es) del proyecto y su historia

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

2

Nos permiten …

Varios clientes pueden sacar copias del
proyecto al mismo tiempo
Realizar cambios a los ficheros manteniendo un
histórico de los cambios

Deshacer los cambios hechos en un momento dado
Recuperar versiones pasadas
Ver históricos de cambios y comentarios
Los clientes pueden también comparar diferentes
versiones de archivos

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

3

Nos permiten …

Unir cambios realizados por diferentes usuarios sobre
los mismos ficheros

Sacar una "foto" histórica del proyecto tal como se
encontraba en un momento determinado

Actualizar una copia local con la última versión que se
encuentra en el servidor

Esto elimina la necesidad de repetir las descargas del proyecto
completo

Mantener distintas ramas de un proyecto

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

4

Sistemas de control de Versiones (SCV)

CVS

http://www.nongnu.org/cvs/

Subversion

http://subversion.tigris.org/

Arch

http://www.gnu.org/software/gnu-arch/

DARCS

http://www.darcs.net/

BitKeeper

http://www.bitkeeper.com/

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

5

Subversion

Sistema de control de versiones libre y de
código abierto (2001)
Está construido sobre una capa de
portabilidad llamada APR(la biblioteca
Apache Portable Runtime)

Debería funcionar sobre cualquier SO donde
lo haga el servidor httpd Apache (Windows,
Linux, Mac OS X, …)

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

6

Subversion

Es un sistema general que puede ser
usado para administrar cualquier
conjunto de ficheros

Texto, imágenes, video, ejecutables, …

El repositorio en el servidor consiste en
una base de datos (Berkeley DB)

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

7

Características

Versionado de directorios
Facilidad para añadir/eliminar/mover
ficheros y directorios
Envíos atómicos
Versionado de metadatos
Soporte para binarios

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

8

Características

Diferentes sistemas de acceso

file:// acceso al sistema local
http:// y https:// haciendo uso del módulo DAV
en Apache 2
svn:// para svnserve y svn+ssh:// para utilizar
ssh

Ramificación y etiquetado eficientes
Se envían solo las diferencias en ambas
direcciones

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

9

Características

Existen clientes gráficos tanto para linux
como para windows

Windows: tortoiseSVN

http://tortoisesvn.tigris.org/

Windows, Linux, Mac OS: rapidsvn

http://rapidsvn.tigris.org/

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

10

Arquitectura

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

11

Ciclo básico de trabajo

svn: programa cliente de línea de
órdenes

La mejor ayuda:
svn help orden

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

12

Ciclo básico de trabajo

Descargando un repositorio (crea una
copia en la máquina local)

svn checkout URL_REPOSITORIO

$ svn checkout http://svn.collab.net/repos/svn/trunk subv
A subv/subversion.dsw
A subv/svn_check.dsp

Checked out revision 2499.

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

13

Ciclo básico de trabajo

Haciendo cambios en la copia de trabajo
local

Cambios en los ficheros

No hay que indicarle nada a subversion. Detectará
los cambios automáticamente

Cambios en el arbol

Añadir/eliminar/copiar/mover ficheros y directorios

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

14

Ciclo básico de trabajo

Añadir/eliminar/copiar/mover ficheros y
directorios

Los cambios son marcados en la copia local y
serán reflejados en el repositorio cuando se
envíen los cambios

$ svn add fichOdir
$ svn delete fichOdir
$ svn copy fichOdir1 fichOdir2
$ svn move fichOdir1 fichOdir2

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

15

Ciclo básico de trabajo

Examinando los cambios antes de enviarlos al repositorio
Se puede ejecutar en la raiz de la copia de trabajo para ver todo
los cambios o en sobre una ruta o fichero esfecífica)

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

16

Ciclo básico de trabajo
Otra forma de examinar los cambios

svn diff

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

17

Ciclo básico de trabajo

Me arrepiento de mis ….. (deshacer las
modificaciones locales)

svn revert PATH

Para deshacer todo los cambios en un
directorio se debe usar la opción

--recursive

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

18

Ciclo básico de trabajo

Enviando los cambios al repositorio

svn commit [PATH] –m “mensaje de registro”

svn commit [PATH] –F fichero_log

$ svn commit --message "Corrected number of cheese slices."
Sending sandwich.txt
Transmitting file data .
Committed revision 3.

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

19

Ciclo básico de trabajo

Actualizar la copia de trabajo local

svn update

$ svn update
U foo.c
U bar.c
Updated to revision 2.

U => Actualizado
A => Añadido
D => Eliminado
R => Reemplazado
G => Fundido
C => Conflicto

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

20

Ciclo básico de trabajo

Resolviendo conflictos

$ svn update
U INSTALL
G README
C bar.c
Updated to revision 46.

Actualizado !!! No hay
problema
Fundido !!! Nos
entendemos: ¡ tu a tus
cosas y yo a las mías !

Aquí llegó la bronca !!!!

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

21

Ciclo básico de trabajo

Pero dicen que hablando se entiende la gente !!!
Acto de conciliación !!!

Ayuda de subversion en relación a los conflictos

Nos informa (C)
Coloca marcas de conflicto en el fichero para demostrar
visualmente las áreas solapadas
Para cada fichero en conflicto, subversion coloca tres ficheros
temporales extra en la copia de trabajo local

(cid:132) Filename.mine, filename.rOLDREV, filename.RNEWREV

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

22

Ciclo básico de trabajo

Soluciones:

Fusionar el texto en conflicto a mano

Copiar uno de los ficheros temporales sobre su
fichero de trabajo

Ejecutar svn revert para eliminar los cambios
locales

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

23

Ciclo básico de trabajo

Subversion no permitirá enviar el fichero en
conflicto hasta que los tres ficheros
temporales sean borrados
Una vez solucionado el conflicto, es necesario
comunicarselo a subversion

svn resolved PATH
Esto borrará los tres ficheros temporales y
Subversion no considerará por mas tiempo que el
fichero está en estado de conflicto

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

24

Ciclo básico de trabajo

Fusionar el texto en conflicto a mano

$ cat sandwich.txt
Top piece of bread
Mayonnaise
Lettuce
Tomato
Provolone
<<<<<<< .mine
Salami
Mortadella
Prosciutto
=======
Sauerkraut
Grilled Chicken
>>>>>>> .r2
Creole Mustard
Bottom piece of bread

svn resolved fichero

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

25

Ciclo básico de trabajo

Copiar uno de los ficheros temporales sobre
su fichero de trabajo

$ svn update
C sandwich.txt
Updated to revision 2.
$ ls sandwich.*
sandwich.txt sandwich.txt.mine sandwich.txt.r2
sandwich.txt.r1
$ cp sandwich.txt.r2 sandwich.txt
$ svn resolved sandwich.txt

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

26

Ciclo básico de trabajo

Eliminar los cambios locales

svn revert fichero
Si se invierte un fichero en conflicto, no es
necesario ejecutar “svn resolved”

$ svn revert sandwich.txt
Reverted 'sandwich.txt'
$ ls sandwich.*
sandwich.txt

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

27

Ciclo básico de trabajo

Una vez resueltos los conflictos, enviamos los
cambios

svn commit –m “mensaje”

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

28

Ciclo básico de trabajo

Examinando el historial

Mostrar información sobre los registros

svn log

Mostrar información sobre cambios

svn diff

Mostrar revisiones anteriores de ficheros

svn cat

Mostrar los ficheros de un directorio para una revisión
concreta
svn list

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

29

Otras órdenes útiles

Completar transacciones pendientes eliminando el
estado de bloqueo

svn cleanup

Copiar un árbol de ficheros sin versionar en el
repositorio, creando directorios intermedios

svn import [PATH] URL

Crear directorios en la copia local o repositorio

svn mkdir PATH_O_URL

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

30

Creación de ramas (branches)

svn cp ORIGEN DESTINO
svn cp file:///home/usuario/svn/holamundo/head
file:///home/usuario/svn/holamundo/ramas/holamundo-beta

Y si corregimos errores en la rama, podemos
rescatarlas en la versión de desarrollo

svn merge

svn merge -r 176:177
file:///home/usuario/svn/holamundo/ramas/holamundo-beta

© Alexis Quesada Arencibia – Francisco J. Santana Pérez

Programación de Sistemas

31

Etiquetas (tags)

svn cp ORIGEN DESTINO
  • Links de descarga
http://lwp-l.com/pdf9004

Comentarios de: Sistemas de Control de Versiones - Subversion (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad