Desarrollo Subversivo

1,787 views

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,787
On SlideShare
0
From Embeds
0
Number of Embeds
73
Actions
Shares
0
Downloads
53
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Desarrollo Subversivo

  1. 1. Desarrollo Subversivo
  2. 2. Agenda <ul><li>El modo “tradicional” de trabajo. </li></ul><ul><li>Control de versiones? </li></ul><ul><li>Subversion. </li></ul><ul><li>Ciclo de trabajo. </li></ul><ul><li>Uso en consola. </li></ul><ul><li>Interfaces gráficas. </li></ul><ul><li>Otros recursos. </li></ul><ul><li>Cierre. </li></ul>
  3. 3. El esquema de trabajo “tradicional”. <ul><li>Gestión de cambios en archivos y directorios? </li></ul><ul><ul><li>Almacenamiento simple de archivos. </li></ul></ul><ul><ul><ul><li>Sistema de archivos. </li></ul></ul></ul><ul><ul><ul><li>Servidor de archivos. </li></ul></ul></ul><ul><ul><li>No atomicidad </li></ul></ul><ul><ul><ul><li>Cambios a medias (BS?) </li></ul></ul></ul><ul><li>Imposibilidad de registro histórico. </li></ul><ul><li>Imposibilidad de revertir cambios. </li></ul><ul><ul><li>A menos que se tengan n “backups” por todos lados... </li></ul></ul><ul><li>Impedir cambios. </li></ul><ul><ul><li>Los contratos sociales son ineficientes. </li></ul></ul><ul><li>La pérdida de tiempo y esfuerzo es inevitable! </li></ul>
  4. 4. Control de versiones? <ul><li>Gestión de cambios en archivos y directorios. </li></ul><ul><ul><li>Historicidad </li></ul></ul><ul><ul><li>Atomicidad </li></ul></ul><ul><li>Posibilidad de registro histórico. </li></ul><ul><ul><li>Por archivo </li></ul></ul><ul><ul><li>Por autor </li></ul></ul><ul><ul><li>Por línea de código </li></ul></ul><ul><li>Revertir cambios. </li></ul><ul><li>Integrar cambios. </li></ul><ul><li>Reducir impacto de conflictos. </li></ul><ul><li>Impedir cambios. </li></ul><ul><ul><li>Proteger archivos o directorios. </li></ul></ul>
  5. 5. Subversion <ul><li>Un sistema de control de versiones. </li></ul><ul><li>Free/Open Source (cumple con las guías Debian) </li></ul><ul><li>Maduro (se desarrolla desde 2000) </li></ul><ul><li>Nació para resolver los problemas de CVS </li></ul><ul><ul><li>Debía lucir familiar para usuarios CVS </li></ul></ul><ul><ul><li>No introduce ningún paradigma revolucionario </li></ul></ul><ul><li>Se asienta sobre estándares y productos abiertos. </li></ul>
  6. 6. Subversion <ul><li>Versionado de directorios </li></ul><ul><li>Histórico real de versiones. </li></ul><ul><li>Atomicidad. </li></ul><ul><li>Abstracción del modelo de acceso/red empleado. </li></ul><ul><li>Gestión eficiente de cambios. </li></ul><ul><li>Facilidad de branches y tags a bajo costo. </li></ul><ul><li>Metadatos. </li></ul><ul><li>Extensiva documentación </li></ul><ul><li>Excelentes APIs </li></ul>
  7. 7. La arquitectura de Subversion
  8. 8. Iniciando el trabajo con Subversion <ul><li>Servidor. </li></ul><ul><ul><li>Crear repositorio. </li></ul></ul><ul><ul><li>Administrar </li></ul></ul><ul><ul><li>Proveer URL/permisos </li></ul></ul><ul><li>Cliente. </li></ul><ul><ul><li>Línea de comandos. </li></ul></ul><ul><ul><li>GUIs </li></ul></ul><ul><ul><li>Iniciar ciclo de trabajo </li></ul></ul><ul><li>Decidir sobre el esquema de comunicación (o no). </li></ul><ul><ul><li>Apache/WebDAV </li></ul></ul><ul><ul><ul><li>Sobre HTTP </li></ul></ul></ul><ul><ul><ul><li>Sobre SSL </li></ul></ul></ul><ul><ul><li>SVNserve protocol (TCP 3690) </li></ul></ul><ul><ul><ul><li>Sobre texto plano </li></ul></ul></ul><ul><ul><ul><li>Sobre túnel SSH </li></ul></ul></ul><ul><ul><li>Local ( file:/// ...) </li></ul></ul><ul><li>Decidir sobre la organización de los archivos (o no). </li></ul>
  9. 9. Breakdown: Servidor <ul><li>svnadmin es LA herramienta para crear, administrar y reparar repositorios SVN. </li></ul><ul><li>Existen unas pocas herramientas como svnlook, svndumpfilter y svnsync, pero su uso es esporádico y los repositorios SVN requieren poco mantenimiento. </li></ul><ul><li>El motor subyacente de almacenamiento de cambios permite obtener copias “en caliente” sin detener el repositorio. </li></ul>
  10. 10. Breakdown: Servidor
  11. 11. Breakdown: Servidor
  12. 12. Breakdown: Servidor <ul><li>Configuración de Apache2: </li></ul><ul><ul><li>Activar mod_dav y mod_dav_svn </li></ul></ul><ul><ul><li>Agregar un handler para cada repositorio: </li></ul></ul>
  13. 13. Breakdown: Cliente (línea de comandos) <ul><li>Crear una copia de trabajo local (1 sola vez) </li></ul><ul><li>Importar estructura y archivos preexistentes (1 sola vez) </li></ul><ul><li>Iniciar el ciclo de trabajo propiamente dicho. </li></ul>
  14. 14. Breakdown: Cliente (línea de comandos) <ul><li>svn add: agregar archivos al working copy, para su posterior envío a repositorio: </li></ul>
  15. 15. Breakdown: Cliente (línea de comandos) <ul><li>svn commit: envío efectivo y atómico de los cambios efectuados localmente al repositorio central de código. </li></ul>
  16. 16. Breakdown: Cliente (GUI con Kioslave) <ul><li>Inicia el ciclo de trabajo propiamente dicho: </li></ul><ul><ul><li>svn update </li></ul></ul>
  17. 17. Breakdown: Cliente (GUI con Kioslave) <ul><ul><li>Se efectúan cambios localmente. </li></ul></ul>
  18. 18. Breakdown: Cliente (GUI con Kioslave) <ul><li>Se envían los cambios locales a repositorio. </li></ul>
  19. 19. Otros clientes SVN <ul><li>Windows </li></ul><ul><ul><li>CLI </li></ul></ul><ul><ul><li>TortoiseSVN (extensión de Explorer) </li></ul></ul><ul><li>Mac </li></ul><ul><ul><li>SCPlugin (extensión de Finder) </li></ul></ul><ul><li>Otros </li></ul><ul><ul><li>Subclipse (plugin para Eclipse) </li></ul></ul>
  20. 20. Otras herramientas en torno a SVN (instalables) <ul><li>Trac </li></ul>
  21. 21. Otras herramientas en torno a SVN (instalables) <ul><li>Trac </li></ul>
  22. 22. Otras herramientas en torno a SVN (instalables) <ul><li>WebSVN </li></ul>
  23. 23. Otras herramientas en torno a SVN (online) <ul><li>Ohloh.net </li></ul>
  24. 24. Otras herramientas en torno a SVN (online) <ul><li>Ohloh.net </li></ul>
  25. 25. Otras herramientas en torno a SVN (online) <ul><li>Assembla.com </li></ul>
  26. 26. Mas referencias en línea <ul><li>Información y aplicaciones Subversion: </li></ul><ul><ul><li>http://subversion.tigris.org </li></ul></ul><ul><ul><li>http://svnbook.red-beans.com </li></ul></ul><ul><ul><li>http://tortoisesvn.tigris.org </li></ul></ul><ul><ul><li>http://trac.edgewall.com </li></ul></ul><ul><li>Hosting Subversion para proyectos FOSS: </li></ul><ul><ul><li>http://sourceforge.net </li></ul></ul><ul><ul><li>http://www.assembla.com </li></ul></ul><ul><ul><li>http://opensvn.csie.org </li></ul></ul>
  27. 27. Cierre <ul><li>Gracias, espero que usen SVN en sus próximos proyectos. </li></ul><ul><li>(o cualquier otro software de control de versiones) ;) </li></ul>
  28. 28. Autor Ariel Graneros - dalecter@hotmail.com Esta obra está bajo una licencia de Creative Commons.

×