Manuel Cesar Yanez  v0.1 SUBVERSION
Contenido Introducción / Conceptos Que es Subversión? Instalación Comandos básicos Interacción usuario consola. Interacción usuario GUI. Componentes Crear un repositorio Configurar Accesos Estructurar Proyectos Migrando Repositorios
Que es Subversion? Subversion es un sistema de control de versiones libre y de código fuente abierto: Maneja ficheros y directorios a través del tiempo.  Hay un árbol de ficheros en un  repositorio central.  El repositorio es como un servidor de ficheros ordinario, excepto porque recuerda todos los cambios hechos a sus ficheros y directorios.  Permite recuperar versiones antiguas de sus datos, o examinar un historial de cambios de los mismos.
Instalación Aquellos que tengan entornos GNU/Linux basados en Debian: apt-get install subversion Los que tengan Windows: Svn1ClickSetup TortoiseSVN
Comandos de Subversion checkout  : obtener una copia de trabajo import  : importar código a un repositorio commit  : actualizar repositorio con los cambios update : actualizar copia de trabajo con los cambios Otros comandos: move, copy, diff, list
Gráfica Operaciones
svn checkout Obtiene una copia local de trabajo de un repositorio Sintaxis: svn checkout URL_Repositorio PATH_LOCAL Ejemplo: svn checkout svn:///192.168.81.100/practica/trunk/proyecto1 /home/codigo/proyecto1
svn status ' '  Sin modificaciones. 'A'  El elemento está programado para ser añadido. 'D'  El elemento está programado para ser borrado. 'M'  El elemento ha sido modificado. 'C'  El elemento está en conflicto tras recibir actualizaciones del repositorio. '?'  El elemento no está bajo control de versiones. '~'  El elemento está versionado como un directorio, pero ha sido reemplazado por un fichero, o viceversa. ' *' Existe una nueva versión del elemento en el servidor
Situación de Conflictos
svn resolved Resumen: Tratamos de hacer un  commit  de un archivo que ha sido modificado localmente pero que posee una nueva versión en el repositorio por lo tanto el  commit  es rechazado, dándose una situación de conflicto. Al hacer un  update  sucede que: Tenemos el archivo en cuestión con ambas porciones de código en conflicto (debemos corregirlo a mano) Se crean 3 versiones del archivo: Nuestra versión de archivo modificado. Versión local descargada previa a los cambios de nuestra parte Versión con cambios nuevos, traída del repositorio
DEMO: Linea de comandos Practica con los comandos de subversion: Bajar un proyecto (svn checkout) Realizar Cambios y chequear estado (svn status) Actualizar copia local (svn update) Subir cambios realizados localmente (svn commit)
GUIs p/ subversion En Windows: TortoiseSVN Click derecho en algún directorio y aparece menú contextual con todas las opciones de subversión EN GNU/Linux:  RapidSVN, esvn, ksvn, y otros IDES c/soporte Subversion:   Eclipse, Netbeans, otros
DEMO: GUIs Instale Alguno de los GUIs detallados en su entorno de trabajo y pruebe en trabajar con un proyecto
No te Apoliyes !!!
Administración SVN COMPONENTES svn   :  El programa cliente de línea de comandos. svnlook  : Una herramienta para inspeccionar un repositorio de Subversion.  svnadmin  : Herramienta para crear, modificar o reparar un repositorio de Subversion. svndumpfilter  : Un programa para filtrar el formato de salida de volcado de repositorios Subversion. svnserve  : Un servidor,  ejecutable como proceso demonio, hace que su repositorio esté disponible para otros a través de una red
Crear un Repositorio svnadmin create  : crea  un repositorio nuevo Sintaxis: svnadmin create PATH_REPOSITORIO Ejemplo: (Linux)   svnadmin  create  /home/SVN/mirepositorio (Win) svnadmin  create  C:\SVN\mirepositorio
Directorios del Repositorio conf  :contiene los ficheros de configuración del repositorio. dav  : directorio para Apache y mod_dav_svn y su economía privada de datos. db  : El entorno principal de la base de datos Berkeley, lleno de tablas que el almacenamiento de datos para el sistema de ficheros de Subversion ( donde residen los datos versionados) format  : Un fichero cuyo contenido es un simple valor entero, dice el número de versión del repositorio hooks  : directorio de plantillas de ganchos locks  : Un directorio para el bloqueo de datos de repositorio de Subversion, usado para los accesos al repositorio.
Configurando Accesos En el directorio  conf  del repositorio existen tres archivos: svnserve.conf :  permisos y configuraciones globales del repositorio authz :  se definen permisos, permisos por directorios, grupos de usuarios y usuarios password  :  contiene configuraciones de usuarios y contraseñas
Estructurar el Repositorio Estructura recomendada: Trunk / Los desarrollos constantes suceden aquí Branches / Desarrollo de propósito especial aquí Tags / Liberaciones numeradas se almacenan aqui
Subir el proyecto Sintaxis :  svn import [PATH] URL Ejemplo: svn import /tmp/proyecto file:///home/SVN/mirepositorio  -m "importacion inicial" Donde /tmp/proyecto es el Path del proyecto a importar y -m indica un mensaje de registro en el repositorio.
Migrando Repositorios Sintaxis :  svn import [PATH] URL Ejemplo: svn import /tmp/proyecto file:///home/SVN/mirepositorio  -m &quot;importacion inicial&quot; Donde /tmp/proyecto es el Path del proyecto a importar y -m indica un mensaje de registro en el repositorio. Respaldar Repositorio: Sin Compresión svnadmin dump file:///home/SVN/mirepo > backup.hoy Con Compresión svnadmin dump file:///home/SVN/mirepo | gzip -9 > backup.hoy.gz Restaurar repositorio: svnadmin create minewrepo svnadmin load minewrepo < backup.hoy Respaldar Repositorio: svnadmin dump file:///home/SVN/mirepo > backup.hoy Restaurar repositorio: svnadmin create minewrepo svnadmin load minewrepo < backup.hoy Respaldar Repositorio: svnadmin dump file:///home/SVN/mirepo > backup.hoy Restaurar repositorio: svnadmin create minewrepo svnadmin load minewrepo < backup.hoy Respaldar Repositorio: svnadmin dump file:///home/SVN/mirepo > backup.hoy Restaurar repositorio: svnadmin create minewrepo svnadmin load minewrepo < backup.hoy
Protocolos Soportados Sintaxis :  svn import [PATH] URL Ejemplo: svn import /tmp/proyecto file:///home/SVN/mirepositorio  -m &quot;importacion inicial&quot; Donde /tmp/proyecto es el Path del proyecto a importar y -m indica un mensaje de registro en el repositorio. file:///  Acceso directo al repositorio (en el disco local). http://  Acceso vía protocolo WebDAV https://  Igual que  http:// , pero con cifrado SSL. svn://  Acceso vía un protocolo personalizado a un servidor  svnserve . svn+ssh://  Lo mismo que  svn:// , pero a través de un túnel SSH.
Buenas Practicas Seguir la estructura de  tags ,  trunk ,  branches Tener todo el código en un repositorio Realizar un  update  al inicio de cada día Solo hacer  commit  de cambios coherentes
Direcciones Útiles Pagina oficial:  http://subversion.tigris.org/ Manual:  http://svnbook.red-bean.com/ Wikipedia:  http://es.wikipedia.org/wiki/Subversion
¿ Preguntas ? E-Mail: Manuel Cesar Yanez [email_address]
CHA GRACIASSSS!!!

Presentación SUbversion

  • 1.
    Manuel Cesar Yanez v0.1 SUBVERSION
  • 2.
    Contenido Introducción /Conceptos Que es Subversión? Instalación Comandos básicos Interacción usuario consola. Interacción usuario GUI. Componentes Crear un repositorio Configurar Accesos Estructurar Proyectos Migrando Repositorios
  • 3.
    Que es Subversion?Subversion es un sistema de control de versiones libre y de código fuente abierto: Maneja ficheros y directorios a través del tiempo. Hay un árbol de ficheros en un repositorio central. El repositorio es como un servidor de ficheros ordinario, excepto porque recuerda todos los cambios hechos a sus ficheros y directorios. Permite recuperar versiones antiguas de sus datos, o examinar un historial de cambios de los mismos.
  • 4.
    Instalación Aquellos quetengan entornos GNU/Linux basados en Debian: apt-get install subversion Los que tengan Windows: Svn1ClickSetup TortoiseSVN
  • 5.
    Comandos de Subversioncheckout : obtener una copia de trabajo import : importar código a un repositorio commit : actualizar repositorio con los cambios update : actualizar copia de trabajo con los cambios Otros comandos: move, copy, diff, list
  • 6.
  • 7.
    svn checkout Obtieneuna copia local de trabajo de un repositorio Sintaxis: svn checkout URL_Repositorio PATH_LOCAL Ejemplo: svn checkout svn:///192.168.81.100/practica/trunk/proyecto1 /home/codigo/proyecto1
  • 8.
    svn status '' Sin modificaciones. 'A' El elemento está programado para ser añadido. 'D' El elemento está programado para ser borrado. 'M' El elemento ha sido modificado. 'C' El elemento está en conflicto tras recibir actualizaciones del repositorio. '?' El elemento no está bajo control de versiones. '~' El elemento está versionado como un directorio, pero ha sido reemplazado por un fichero, o viceversa. ' *' Existe una nueva versión del elemento en el servidor
  • 9.
  • 10.
    svn resolved Resumen:Tratamos de hacer un commit de un archivo que ha sido modificado localmente pero que posee una nueva versión en el repositorio por lo tanto el commit es rechazado, dándose una situación de conflicto. Al hacer un update sucede que: Tenemos el archivo en cuestión con ambas porciones de código en conflicto (debemos corregirlo a mano) Se crean 3 versiones del archivo: Nuestra versión de archivo modificado. Versión local descargada previa a los cambios de nuestra parte Versión con cambios nuevos, traída del repositorio
  • 11.
    DEMO: Linea decomandos Practica con los comandos de subversion: Bajar un proyecto (svn checkout) Realizar Cambios y chequear estado (svn status) Actualizar copia local (svn update) Subir cambios realizados localmente (svn commit)
  • 12.
    GUIs p/ subversionEn Windows: TortoiseSVN Click derecho en algún directorio y aparece menú contextual con todas las opciones de subversión EN GNU/Linux: RapidSVN, esvn, ksvn, y otros IDES c/soporte Subversion: Eclipse, Netbeans, otros
  • 13.
    DEMO: GUIs InstaleAlguno de los GUIs detallados en su entorno de trabajo y pruebe en trabajar con un proyecto
  • 14.
  • 15.
    Administración SVN COMPONENTESsvn : El programa cliente de línea de comandos. svnlook : Una herramienta para inspeccionar un repositorio de Subversion. svnadmin : Herramienta para crear, modificar o reparar un repositorio de Subversion. svndumpfilter : Un programa para filtrar el formato de salida de volcado de repositorios Subversion. svnserve : Un servidor, ejecutable como proceso demonio, hace que su repositorio esté disponible para otros a través de una red
  • 16.
    Crear un Repositoriosvnadmin create : crea un repositorio nuevo Sintaxis: svnadmin create PATH_REPOSITORIO Ejemplo: (Linux) svnadmin create /home/SVN/mirepositorio (Win) svnadmin create C:\SVN\mirepositorio
  • 17.
    Directorios del Repositorioconf :contiene los ficheros de configuración del repositorio. dav : directorio para Apache y mod_dav_svn y su economía privada de datos. db : El entorno principal de la base de datos Berkeley, lleno de tablas que el almacenamiento de datos para el sistema de ficheros de Subversion ( donde residen los datos versionados) format : Un fichero cuyo contenido es un simple valor entero, dice el número de versión del repositorio hooks : directorio de plantillas de ganchos locks : Un directorio para el bloqueo de datos de repositorio de Subversion, usado para los accesos al repositorio.
  • 18.
    Configurando Accesos Enel directorio conf del repositorio existen tres archivos: svnserve.conf : permisos y configuraciones globales del repositorio authz : se definen permisos, permisos por directorios, grupos de usuarios y usuarios password : contiene configuraciones de usuarios y contraseñas
  • 19.
    Estructurar el RepositorioEstructura recomendada: Trunk / Los desarrollos constantes suceden aquí Branches / Desarrollo de propósito especial aquí Tags / Liberaciones numeradas se almacenan aqui
  • 20.
    Subir el proyectoSintaxis : svn import [PATH] URL Ejemplo: svn import /tmp/proyecto file:///home/SVN/mirepositorio -m &quot;importacion inicial&quot; Donde /tmp/proyecto es el Path del proyecto a importar y -m indica un mensaje de registro en el repositorio.
  • 21.
    Migrando Repositorios Sintaxis: svn import [PATH] URL Ejemplo: svn import /tmp/proyecto file:///home/SVN/mirepositorio -m &quot;importacion inicial&quot; Donde /tmp/proyecto es el Path del proyecto a importar y -m indica un mensaje de registro en el repositorio. Respaldar Repositorio: Sin Compresión svnadmin dump file:///home/SVN/mirepo > backup.hoy Con Compresión svnadmin dump file:///home/SVN/mirepo | gzip -9 > backup.hoy.gz Restaurar repositorio: svnadmin create minewrepo svnadmin load minewrepo < backup.hoy Respaldar Repositorio: svnadmin dump file:///home/SVN/mirepo > backup.hoy Restaurar repositorio: svnadmin create minewrepo svnadmin load minewrepo < backup.hoy Respaldar Repositorio: svnadmin dump file:///home/SVN/mirepo > backup.hoy Restaurar repositorio: svnadmin create minewrepo svnadmin load minewrepo < backup.hoy Respaldar Repositorio: svnadmin dump file:///home/SVN/mirepo > backup.hoy Restaurar repositorio: svnadmin create minewrepo svnadmin load minewrepo < backup.hoy
  • 22.
    Protocolos Soportados Sintaxis: svn import [PATH] URL Ejemplo: svn import /tmp/proyecto file:///home/SVN/mirepositorio -m &quot;importacion inicial&quot; Donde /tmp/proyecto es el Path del proyecto a importar y -m indica un mensaje de registro en el repositorio. file:/// Acceso directo al repositorio (en el disco local). http:// Acceso vía protocolo WebDAV https:// Igual que http:// , pero con cifrado SSL. svn:// Acceso vía un protocolo personalizado a un servidor svnserve . svn+ssh:// Lo mismo que svn:// , pero a través de un túnel SSH.
  • 23.
    Buenas Practicas Seguirla estructura de tags , trunk , branches Tener todo el código en un repositorio Realizar un update al inicio de cada día Solo hacer commit de cambios coherentes
  • 24.
    Direcciones Útiles Paginaoficial: http://subversion.tigris.org/ Manual: http://svnbook.red-bean.com/ Wikipedia: http://es.wikipedia.org/wiki/Subversion
  • 25.
    ¿ Preguntas ?E-Mail: Manuel Cesar Yanez [email_address]
  • 26.