Introduccion a vcs_y_svn_v3.0

Post on 03-Jul-2015

718 views 0 download

description

Formación de comunidad, sesión sobre sistemas de control de versiones y subversion.

Transcript of Introduccion a vcs_y_svn_v3.0

Sistemas de control de versiones y svn

Formación de comunidad para @emergya

Junio 2010

@davidjguru

david.jguru@gmail.com

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/