Control de versiones y Subversion

download Control de versiones y Subversion

of 21

  • date post

    12-Jun-2015
  • Category

    Technology

  • view

    3.609
  • download

    1

Embed Size (px)

description

Charla para la Oficina de Software Libre (http://osl.ugr.es) durante la "I Jornada de Proyectos de Software Libre".

Transcript of Control de versiones y Subversion

  • 1. Control de versiones ySubversion Jos Luis Lpez Pino

2. Qu es el control de versiones? El control de versiones es el arte del manejo de los cambios en la informacin. Herramienta crtica para los programadores. Facilita volver a una versin anterior. Facilita el trabajo colaborativo. Se envan slo las diferencias realizadas. El control de versiones no slo es necesario para el software. 3. Clasificacin http://www.infoq.com/articles/dvcs-guide 4. Clasificacin: centralizados Un poco ms sencillos de utilizar que los distribuidos. Se tiene un control total sobre las versiones. Limitaciones en el acceso. Puede haber menos conflictos a resolver. Ejemplos: CVS y Subversion. 5. Clasificacin: distribuidos Se puede trabajar de forma local. Operaciones locales ms rpidas. No necesitas permiso para participar en los proyectos. No se depende de una sola mquina fsica. Puedes seguir teniendo un control centralizado del proyecto. Ejemplos: Git, Bazaar y Mercurial. 6. Herramientas svn Cliente de lnea de comandos. svnversionEstado de la copia de trabajo. svnlook Inspeccionar un repositorio. svnadminCrear, modificar o reparar repos. svnserveServidor. 7. Acciones comunes Copia de trabajo (working copy):Copia local y privada de los archivos y directoriosdel repositorio. A ella se incorporarn los cambioso pondrn a disposicin los tuyos cuando t se loindiques. Revisin (revision):Es una instantnea del repositorio en unmomento particular en el tiempo, cada vez que elservidor acepta un envo se crea una nuevarevisin.Para identificarlas se utilizan nmeros desde el 0. 8. Acciones comunes Crear copia de trabajo svn checkout Ver diferenciassvn diff Deshacer cambios locales svn revert Subir nueva versinsvn commit Sincronizar con repos. svn update Mensajes de logsvn log Gestionar ficheros svn add | delete Copiar Mover svn move | copy Ver ficheros modificados svn status Ayuda!svn help 9. Estructura comn del repositorio Hay maneras estndar recomendadas para organizar un repositorio. /trunkcontendr la lnea principal /branches copias de las ramas /tags copias de las etiquetas 10. Problema: sobreescritura 11. Solucin parcial: bloqueo 12. Solucin: mezclar 13. Conflictos $ svn update U INSTALL Actualizado G READMEUnido C bar.c Conflicto! Updated to revision 46. Cuando se produce conflicto nos encontramos: filename.mineMi archivo filename.rOLDREV Versin original de la ma. filename.rNEWREV Versin actual en el repos. 14. Solucionando conflictos Tenemos tres opciones: Fusionar el texto en conflicto a mano y marcar el conflicto como resuelto (svn resolved). Copiar uno de los ficheros temporales sobre su fichero de trabajo y marcar como resuelto. Eliminar cambios locales (svn revert). 15. RamasRama (branch): Lnea de desarrollo que existe de forma independiente a otra, pero comparte una historia comn si mira suficientemente atrs en el tiempo. 16. Ramas Subversion tiene comandos para ayudarle a mantener ramas paralelas de sus ficheros y directorios. Nos evitan duplicar cambios en varias ramas. Permiten mezclar y probar diferentes lneas de desarrollo en su trabajo diario. 17. Operaciones con ramas Crear una ramasvn copy Unir dos fuentessvn merge Ver diferencias antes de unir svn diff Trasladarnos a otra ramasvn switch 18. Etiquetas Etiqueta (tag): Una etiqueta no es ms que una instantnea (snapshot) del proyecto en un momento de tiempo. Realmente cada revisin ya es una instantnea, pero con las etiquetas le ponemos nombres ms bonitos y pueden ser de slo un subdirectorio.En subversion, una etiqueta es realmente una nueva rama que creamos y lo almacenamos en un lugar diferente (/tags) y no realizamos cambios en ella. Al igual que las ramas, las creamos con svn copy 19. Clientes visuales RabbitVCS (Nautilus) KDESvn (Konqueror) TortoiseSVN (Windows) RapidSVN (Linux, Windows y MacOS) Cliente integrado con los distintos EDS. 20. Servidores externos http://forja.rediris.es/ http://code.google.com/hosting/ http://sourceforge.net/ http://www.xp-dev.com/ http://savannah.gnu.org/ 21. Libro Version Control with Subversion Control de versiones con Subversion Libre http://svnbook.red-bean.com/