introduccion a vcs_y_svn_v3.0
DESCRIPTION
Formación de comunidad, sesión sobre sistemas de control de versiones y subversion.TRANSCRIPT
Sistemas de control de versiones y svn
Formación de comunidad para @emergya
Junio 2010
@davidjguru
Objetivos
1.-Aclarar conceptos sobre control de versiones2.-Madurar conceptos que ya sepamos3.-Clarificar la importancia de un buen histórico4.-Prácticar
Índice
1.-Introducción a conceptos
2.-Justificación del uso de un sistema de control de versiones
3.-Historia de los sistema de control de versiones
4.-Vista general de subversion
5.-Ciclo básico de trabajo con svn
6.-Problemas comunes con svn
Introducción a conceptos
Repositorio:Lugar donde se puede almacenar -esto es, donde se accede, se guardan, se
extraen, se consultan- elementos software. Suelen contar con algunas medidas que los diferencia de simples dispositivos de almacenamiento.
Control de versiones:Conjunto de medidas para gestionar el estado en el que se encuentra en un
momento dado nuestro producto software.
Control de versiones centralizado: Un nodo central para albergar todo el código que esta a disposición de todos
los usuarios.
Control de versiones distribuido: Un sistema de ficheros distribuidos. Cada usuario sincroniza su clon.
Justificación del uso
Trabajo concurrente
Manejo de diferencias
Registro del historial de cambios
Identificación de conflictos
Facilitar la colaboración
Revertir estados
Historia de los sistemas de control de versiones
Intro a svn
VCS centralizado
Lanzado en el año 2000
Licencia de uso Apache (cumple las cuatro libertades)
Mucho uso en comunidades openSource
Muy extendido en el entorno empresarial
Características de svn
Recoge casi todas las de CVS
Único estado común en un instante para todo el proyecto
Permite accesos distintos (Apache, svnserve y local)
Distintas herramientas para administrar, revisar y explorar el repositorio
Partes y acceso a svn
Ocho módulos distintos: svn, svnversion, svnlook, svnadmin, mod_dav_svn, svndumpfilter,
svnserve, svnsync.
Accesos distintos:
file:///http://svn://
https://svn + ssh://
Convenciones sobre svn
Ciclo básico de trabajo con svn
//Prepara tu sistema
david@maquinon: ~$ sudo apt-get install subversiondavid@maquinon: ~$ sudo mkdir /var/svn/
//Crea un proyecto de trabajo
david@maquinon:~$ sudo svnadmin create /var/svn/test
//Da permisos de trabajo
david@maquinon: ~$ sudo chown -R david: /var/svn/
//Mediante checkout, obten tu copia de trabajo
david@maquinon: ~$ svn checkout file:///var/svn/test
Ciclo básico de trabajo con svn
//Crea la estructura de trabajo recomendada
david@maquinon: ~$ cd test/david@maquinon: ~/test$ mkdir trunk tags branches
//Añadirla al repositorio
david@maquinon: ~/test$ svn add trunk tags branches
//Realizar el commit de estos cambios
david@maquinon: ~/test$ svn commit -m ”Se ha creado la estructura básica”
Ciclo básico de trabajo con svn
//Genera un fichero de prueba en la copia local
david@maquinon: ~/test$ cd trunkdavid@maquinon: ~/test/trunk$ vim fichero_prueba.txt
//Se añade el nuevo fichero a la copia local de trabajo
david@maquinon: ~/test/trunk$ svn add fichero_prueba.txt
//Se sube el cambio al repositorio
david@maquinon: ~/test/trunk$ svn commit -m “Subida del fichero de prueba”
Ciclo básico de trabajo con svn
//Obten la última version del proyecto
david@maquinon: ~/test/trunk$ svn up
//Obten la información de la evolución del proyecto
david@maquinon: ~/test/trunk$ svn log
//Comprueba los cambios entre dos revisiones
david@maquinon: ~/test/trunk$ svn diff -r 12:1234
Ciclo básico de trabajo con svn//Unifica logs en un mismo archivo
david@maquinon: ~/test/trunk$ svn log -r 14 > mylogdavid@maquinon: ~/test/trunk$ svn log -r 17 >> mylogdavid@maquinon: ~/test/trunk$ svn log -r 19 >> mylog
//Comprueba el contenido de los logs
david@maquinon: ~/test/trunk$ cat mylog
//Haz un clean del repositorio
david@maquinon: ~/test/trunk$ svn cleanup /test/
Problemas comunes con svnProblemas relacionados con renombrado
Problemas relacionados con ficheros de metainformación
Problemas relacionados con transacciones de la base de datos
Problemas relacionados con permisos
Problemas con ficheros de bloqueos
Problemas con desarrollo sobre tags
+ Info
// Info introductoria
http://es.wikipedia.org/wiki/Control_de_versiones
http://www.chuidiang.com/chuwiki/index.php?title=Sistema_de_control_de_versiones
// Info en el blog personal
http://davidjguru.wordpress.com/tag/vcs/
// Buenas prácticas con svn
http://www.yolinux.com/TUTORIALS/Subversion.html#BESTPRACTICES
// Manual de referencia
http://svnbook.red-bean.com/