Svn: Sistema de archivos 4d
-
Upload
javier-p -
Category
Technology
-
view
325 -
download
3
description
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!