Svn: Sistema de archivos 4d

Post on 13-Jun-2015

327 views 3 download

description

¿Qué es un sistema de archivos? ¿Qué es subversion? ¿Por qué usar svn y no otro sistema de control de versiones? ¿Quién usa svn? ¿Cómo trabaja? Ejemplo práctico Herramientas

Transcript of Svn: Sistema de archivos 4d

svn: Sistema de archivos 4D

Javier E. Pérez P.<templeofdvst AT gmail.com>

http://dvst.no-ip.orgNoviembre 2006

¿Quién soy?

http://www.velug.org.ve

http://www.debianvenezuela.org.ve

http://groups.yahoo.com/group/iutlv_linux

http://www.cnsl.org.ve

...

¿Qué es un sistema de archivos?

*NIX

MS Windows

MacOS

/home/dvst/img/masuimi

C:\Mis documentos\Mi música\avenged sevenfold

directorio:subdirectorio:subdirectorio

CrearMoverEliminar

Archivos / Directorios

¿Qué es subversion?

➢ Licencia: Apache / BSD

➢ Desarrollo colaborativo

➢ Maquina de tiempo (4D)

➢ Sucesor de CVS

¿Por qué usar svn y no otro sistema de

control de versiones?

➢ Registra cambios de la estructura de archivos

manteniendo el historial, cvs no.

➢ Se envían/reciben solo las diferencias entre

versiones, CVS envia/recibe archivos completos.

➢ Los commit son generales, no individuales.

➢ Permite backups al instante, no hay que

interrumpir el acceso como lo hace cvs.

dvst@masuimi:~/tmp$ lsarchivo1.pl archivo2.pldvst@masuimi:~/tmp$ mv archivo2.pl archivo3.pldvst@masuimi:~/tmp$ cvs remove archivo2.pldvst@masuimi:~/tmp$ cvs add archivo3.pl

cvs

dvst@masuimi:~/tmp$ lsarchivo1.pl archivo2.pldvst@masuimi:~/tmp$ mv archivo2.pl archivo3.pldvst@masuimi:~/tmp$ svn move archivo2.pl archivo3.pl

svn *

* Mantiene el historial!!!

➢ Registra cambios de la estructura de archivos

manteniendo el historial, cvs no.

➢ Se envían/reciben solo las diferencias entre

versiones, CVS envia/recibe archivos completos.

➢ Los commit son generales, no individuales.

➢ Permite backups al instante, no hay que

interrumpir el acceso como lo hace cvs.

#!/usr/bin/perl$mito = "perl es dificil";print $mito;

archivo1.pl

#!/usr/bin/perluse strict;my $mito = "perl es dificil";print $mito;

archivo2.pl

diff -u (diferencia unificada)

--- archivo1.pl 2006-11-19 18:15:34.000000000 -0400+++ archivo2.pl 2006-11-19 18:17:04.000000000 -0400@@ -1,3 +1,6 @@ #!/usr/bin/perl-$mito = "perl es dificil";+use strict;+my $mito = "perl es dificil"; print $mito;

➢ Registra cambios de la estructura de archivos

manteniendo el historial, cvs no.

➢ Se envían/reciben solo las diferencias entre

versiones, CVS envia/recibe archivos completos.

➢ Los commit son generales, no individuales.

➢ Permite backups al instante, no hay que

interrumpir el acceso como lo hace cvs.

1. Estamos en la copia de trabajo actual

2. Modificamos archivo1.pl y archivo2.pl (no tocamos

archivo3.pl)

3. Actualizamos el repositorio con nuestros cambios

4. Se interrumpe la transmisión de datos (problemas de

red, luz, etc.)

cvs

Escenario

Comportamiento

svnO realiza todos los cambios, o no actualiza ninguno

Actualiza los que pudo, hay que reparar la integridadmanualmente

➢ Registra cambios de la estructura de archivos

manteniendo el historial, cvs no.

➢ Se envían/reciben solo las diferencias entre

versiones, CVS envia/recibe archivos completos.

➢ Los commit son generales, no individuales.

➢ Permite backups al instante, no hay que

interrumpir el acceso como lo hace cvs.

¿Quién usa svn?

Apache Software Foundation, KDE, GCC, Python, Samba, Mono, PuTTY, Zope, Xiph, GnuPG, CUPS, Wireshark, TWiki, Ruby on Rails, Django, Bioconductor, cuaima, velug, muchisimos mas.

...

¿Cómo trabaja?

http://svnbook.red-bean.com/

Típico sistema cliente/servidor

http://svnbook.red-bean.com/

Problema a evitar

http://svnbook.red-bean.com/

Solución de bloqueo

http://svnbook.red-bean.com/

Solución copia-modifica-fusiona

http://svnbook.red-bean.com/

Solución copia-modifica-fusionacontinuación

A mojarnos los pies(abc)

crear repositorio

crear copia de trabajo

importar proyecto

subir modificaciones

actualizar copia de trabajo

svnadmin create REPOS_PATH

svn import miProyecto REPOS_PATH/miProyecto

svn checkout REPOS_PATH/miProyecto

svn commit

svn update

imprime diferencias realizadas desde la revisión indicada

muestra todos los mensajes por revisión

deshace cambios

muestra contenido de archivo por revisión

svn diff -r 4 archivo1.pl

svn log

svn revert archivo1.pl

svn cat -r 3 archivo1.pl

lista archivos del repositorio sin tener que bajar localmente

svn list

muestra los cambios realizadossvn status -v

Herramientas

http://subversion.tigris.org/links.html#clients

http://cuaima.latinux.com | http://trac.edgewall.com/

http://code.google.com

Gracias!