Desarrollo Subversivo

  • View
    1.580

  • Download
    1

Embed Size (px)

DESCRIPTION

Un vistazo a las ventajas del trabajo con control de versiones en general, y con subversion en particular.

Text of Desarrollo Subversivo

  • 1. Desarrollo Subversivo

2. Agenda

  • El modo tradicional de trabajo.
  • Control de versiones?
  • Subversion.
  • Ciclo de trabajo.
  • Uso en consola.
  • Interfaces grficas.
  • Otros recursos.
  • Cierre.

3. El esquema de trabajo tradicional.

  • Gestin de cambios en archivos y directorios?
    • Almacenamiento simple de archivos.
      • Sistema de archivos.
      • Servidor de archivos.
    • No atomicidad
      • Cambios a medias (BS?)
  • Imposibilidad de registro histrico.
  • Imposibilidad de revertir cambios.
    • A menos que se tengan n backups por todos lados...
  • Impedir cambios.
    • Los contratos sociales son ineficientes.
  • La prdida de tiempo y esfuerzo es inevitable!

4. Control de versiones?

  • Gestin de cambios en archivos y directorios.
    • Historicidad
    • Atomicidad
  • Posibilidad de registro histrico.
    • Por archivo
    • Por autor
    • Por lnea de cdigo
  • Revertir cambios.
  • Integrar cambios.
  • Reducir impacto de conflictos.
  • Impedir cambios.
    • Proteger archivos o directorios.

5. Subversion

  • Un sistema de control de versiones.
  • Free/Open Source (cumple con las guas Debian)
  • Maduro (se desarrolla desde 2000)
  • Naci para resolver los problemas de CVS
    • Deba lucir familiar para usuarios CVS
    • No introduce ningn paradigma revolucionario
  • Se asienta sobre estndares y productos abiertos.

6. Subversion

  • Versionado de directorios
  • Histrico real de versiones.
  • Atomicidad.
  • Abstraccin del modelo de acceso/red empleado.
  • Gestin eficiente de cambios.
  • Facilidad de branches y tags a bajo costo.
  • Metadatos.
  • Extensiva documentacin
  • Excelentes APIs

7. La arquitectura de Subversion 8. Iniciando el trabajo con Subversion

  • Servidor.
    • Crear repositorio.
    • Administrar
    • Proveer URL/permisos
  • Cliente.
    • Lnea de comandos.
    • GUIs
    • Iniciar ciclo de trabajo
  • Decidir sobre el esquema de comunicacin (o no).
    • Apache/WebDAV
      • Sobre HTTP
      • Sobre SSL
    • SVNserve protocol (TCP 3690)
      • Sobre texto plano
      • Sobre tnel SSH
    • Local ( file:/// ...)
  • Decidir sobre la organizacin de los archivos (o no).

9. Breakdown: Servidor

  • svnadmin es LA herramienta para crear, administrar y reparar repositorios SVN.
  • Existen unas pocas herramientas como svnlook, svndumpfilter y svnsync, pero su uso es espordico y los repositorios SVN requieren poco mantenimiento.
  • El motor subyacente de almacenamiento de cambios permite obtener copias en caliente sin detener el repositorio.

10. Breakdown: Servidor 11. Breakdown: Servidor 12. Breakdown: Servidor

  • Configuracin de Apache2:
    • Activar mod_dav y mod_dav_svn
    • Agregar un handler para cada repositorio:

13. Breakdown: Cliente (lnea de comandos)

  • Crear una copia de trabajo local (1 sola vez)
  • Importar estructura y archivos preexistentes (1 sola vez)
  • Iniciar el ciclo de trabajo propiamente dicho.

14. Breakdown: Cliente (lnea de comandos)

  • svn add: agregar archivos al working copy, para su posterior envo a repositorio:

15. Breakdown: Cliente (lnea de comandos)

  • svn commit: envo efectivo y atmico de los cambios efectuados localmente al repositorio central de cdigo.

16. Breakdown: Cliente (GUI con Kioslave)

  • Inicia el ciclo de trabajo propiamente dicho:
    • svn update

17. Breakdown: Cliente (GUI con Kioslave)

    • Se efectan cambios localmente.

18. Breakdown: Cliente (GUI con Kioslave)

  • Se envan los cambios locales a repositorio.

19. Otros clientes SVN

  • Windows
    • CLI
    • TortoiseSVN (extensin de Explorer)
  • Mac
    • SCPlugin (extensin de Finder)
  • Otros
    • Subclipse (plugin para Eclipse)

20. Otras herramientas en torno a SVN (instalables)

  • Trac

21. Otras herramientas en torno a SVN (instalables)

  • Trac

22. Otras herramientas en torno a SVN (instalables)

  • WebSVN

23. Otras herramientas en torno a SVN (online)

  • Ohloh.net

24. Otras herramientas en torno a SVN (online)

  • Ohloh.net

25. Otras herramientas en torno a SVN (online)

  • Assembla.com

26. Mas referencias en lnea

  • Informacin y aplicaciones Subversion:
    • http://subversion.tigris.org
    • http://svnbook.red-beans.com
    • http://tortoisesvn.tigris.org
    • http://trac.edgewall.com
  • Hosting Subversion para proyectos FOSS:
    • http://sourceforge.net
    • http://www.assembla.com
    • http://opensvn.csie.org

27. Cierre

  • Gracias, espero que usen SVN en sus prximos proyectos.
  • (o cualquier otro software de control de versiones) ;)

28. Autor Ariel Graneros - dalecter@hotmail.com Esta obra est bajo unalicenciade Creative Commons.