introduccion a vcs_y_svn_v3.0

17

Click here to load reader

Upload: david-davidjguru-rodriguez

Post on 03-Jul-2015

718 views

Category:

Technology


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Introduccion a vcs_y_svn_v3.0

Sistemas de control de versiones y svn

Formación de comunidad para @emergya

Junio 2010

@davidjguru

[email protected]

Page 2: Introduccion a vcs_y_svn_v3.0

Objetivos

1.-Aclarar conceptos sobre control de versiones2.-Madurar conceptos que ya sepamos3.-Clarificar la importancia de un buen histórico4.-Prácticar

Page 3: Introduccion a vcs_y_svn_v3.0

Í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

Page 4: Introduccion a vcs_y_svn_v3.0

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.

Page 5: Introduccion a vcs_y_svn_v3.0

Justificación del uso

Trabajo concurrente

Manejo de diferencias

Registro del historial de cambios

Identificación de conflictos

Facilitar la colaboración

Revertir estados

Page 6: Introduccion a vcs_y_svn_v3.0

Historia de los sistemas de control de versiones

Page 7: Introduccion a vcs_y_svn_v3.0

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

Page 8: Introduccion a vcs_y_svn_v3.0

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

Page 9: Introduccion a vcs_y_svn_v3.0

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://

Page 10: Introduccion a vcs_y_svn_v3.0

Convenciones sobre svn

Page 11: Introduccion a vcs_y_svn_v3.0

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

Page 12: Introduccion a vcs_y_svn_v3.0

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”

Page 13: Introduccion a vcs_y_svn_v3.0

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”

Page 14: Introduccion a vcs_y_svn_v3.0

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

Page 15: Introduccion a vcs_y_svn_v3.0

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/

Page 16: Introduccion a vcs_y_svn_v3.0

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

Page 17: Introduccion a vcs_y_svn_v3.0

+ 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/