Sistemas de control de versiones

download Sistemas de control de versiones

If you can't read please download the document

description

Entre las herramientas básicas a disposición de cualquier programador, el sistema de control de versiones es al que menos importancia se da. Aunque estrictamente no sea necesario, es muy útil para generar informes de estado, historiales de cambios y muchas otras posibilidades que ayudan a la organización del trabajo individual y facilitan enormemente la labor en equipo. Se aborda un panorama muy general sobre la clasificación, funcionamiento básico y terminología. Dado en #shlcon el jueves 18 de noviembre de 2010.

Transcript of Sistemas de control de versiones

  • 1. 18 nov '10 Sistemas de control de versiones Noviembre de 2010

2. 18 nov '10 Si las cosas fueran perfectas... No habra que depurar... El trabajo sera colaborativo... Absorberamos los posibles errores... Introduccin 3. 18 nov '10 ... pero como (afortunadamente) no es as Administracin Del tiempo De los recursos De la gente Planeacin, organizacin, direccin y control. Introduccin 4. 18 nov '10 Las tres herramientas bsicas de cualquier programador Editor de texto Sistema de control de versiones Sistema de automatizacin de construcciones Introduccin 5. 18 nov '10 Las tres herramientas bsicas de cualquier programador Se contempla slo para proyectos grandes Editor de texto Sistema de control de versiones Sistema de automatizacin de construcciones Introduccin 6. 18 nov '10 Qu caso tiene? Introduccin 7. 18 nov '10 Agenda Qu es un control de versiones? Terminologa bsica Comandos bsicos Estrategias de organizacin Recomendaciones y primeros pasos Introduccin 8. 18 nov '10 Control de versiones Administracin de cambios a archivos Comn en desarrollo de software porque un equipo puede cambiar los mismos archivos Los cambios se representan con un cdigo: r16 Qu es un sistema de control de versiones? 9. 18 nov '10 ... para cada necesidad (o gusto) Centralizados Cliente-servidor Distribuidos P2P cvs CVSNT Visual Sourcesafe SVK Qu es un sistema de control de versiones? 10. 18 nov '10 Centralizado o distribuido? De las mejores maneras para iniciar una guerra religiosa Lo importante es la proteccin contra la Ley de Murphy Qu es un sistema de control de versiones? 11. 18 nov '10 Usarlo o no usarlo? Murphy de nuevo Trabajo en equipo Claridad Organizacin Salud mental Qu es un sistema de control de versiones? 12. 18 nov '10 Hablemos de control de versiones ... en ingls (get used to it) Baseline Producto(s) a usarse como base lgica de comparacin Working copy Copia local y privada Revision Instantnea en un momento dado Terminologa bsica 13. 18 nov '10 Versiones Trunk Branch Discontinued branch Tags Terminologa bsica 14. 18 nov '10 Trabajando Checkout Change, diff, delta Commit, checkin Repository Terminologa bsica 15. 18 nov '10 Compartiendo Merge Conflict Resolve Terminologa bsica File-locking 16. 18 nov '10 Cmo crear un repositorio? $ svnadmin create ejemplo $ hg init ejemplo $ git init ejemplo Comandos bsicos 17. 18 nov '10 Cmo bajar una copia? $ svn checkout||co [RUTA] $ hg update||up||checkout||co [RUTA] $ git checkout [RUTA] Comandos bsicos 18. 18 nov '10 Cmo actualizar la copia local? $ svn update||up $ hg update||up||checkout||co $ git pull Comandos bsicos 19. 18 nov '10 Cmo almacenar cambios? $ svn commit||ci [RUTA] $ hg commit||ci [RUTA] $ git push||commit [RUTA] Comandos bsicos 20. 18 nov '10 Cmo almacenar nuevas cosas? $ svn add [RUTA] $ hg add [RUTA] $ git add [RUTA] Comandos bsicos 21. 18 nov '10 Cmo dejar de almacenar cosas? $ svn delete||del||remove||rm [RUTA] $ hg remove [RUTA] $ git branch -d||D [RUTA] Comandos bsicos 22. 18 nov '10 ... entonces, hay diferencia? Comandos bsicos Al tener distintos objetivos especficos, proporcionan distintas caractersticas 23. 18 nov '10 Por qu Subversion? Commits atmicos Al renombrar, mover o copiar archivos se preserva el historial Se versionan los directorios Soporte nativo para binarios y tipos MIME Mltiples protocolos incluyendo http y https Se guardan y envan slo los cambios entre versiones Comandos bsicos 24. 18 nov '10 Por qu Git? Ramas locales sin coste adicional Todo es local Rpido en rendimiento Tamao pequeo rea de montaje: elegir qu archivos se enviarn y cundo Todos tienen una copia completa, en caso de problemas Se adapta a mltiples flujos de trabajo GitHub: la red social del cdigo Las revisiones se marcan como hashes SHA-1 Comandos bsicos 25. 18 nov '10 Por qu Mercurial? Soporte desde siempre para mltiples plataformas TortoiseHg: un GUI Sin necesidad de optimizaciones peridicas (git-gc) Proyectos muy grandes como Firefox, Python, OpenJDK Grande comunidad apoyando (Googlecode y Bitbucket) Las revisiones se marcan en hashes SHA-1 y hace alias como nmeros enteros locales Mapea nombres de usuario: adems de usernames, nombres completos y correos electrnicos Comandos bsicos 26. 18 nov '10 Ingeniera de software Etiquetas (slo lectura) Ramas (aislamiento) Desarrollo en paralelo Estrategias de organizacin 27. 18 nov '10 Desarrollo Web Pruebas (sandboxed) Staging sites: ensamblado, pruebas y evaluaciones antes de ir a produccin (garanta de calidad o QA) Desarrollo en paralelo Estrategias de organizacin 28. 18 nov '10 Administracin de sistemas Respaldo (y rpida recuperacin) Organizacin Documentacin Estrategias de organizacin 29. 18 nov '10 Su punto dbil Pueden reforzar esquemas jerrquicos de desarrollo Dependencia en infraestructura: servidor o programas adicionales Curva de aprendizaje: pareciera slo para desarrolladores Disciplina: hay que usarlos Recomendaciones y primeros pasos 30. 18 nov '10 Dnde empezar? http://www.nongnu.org/cvs http://cvsnt.org/ http://subversion.apache.org/ http://www.gnu.org/software/gnu-arch/ http://svk.bestpractical.com/ http://monotone.ca/ http://codeville.org/ http://git-scm.com/ http://mercurial.selenic.com/ http://bazaar.canonical.com/ http://www.fossil-scm.org/ Recomendaciones y primeros pasos 31. 18 nov '10 Comparativas y manuales Bloggeros y editores: Para no comenzar de cero... Buscar diferentes fuentes Dudas especficas? Motores de bsqueda Recomendaciones y primeros pasos 32. 18 nov '10 ... y no olvidar Se trata de herramientas de trabajo COLABORATIVO Recomendaciones y primeros pasos 33. 18 nov '10 Bibliografa y mesografa Control de versiones http://es.wikipedia.org/wiki/Control_de_versiones Version control with Subversion http://svnbook.red-bean.com/en/1.1/re04.html git(1) Manual Page http://www.kernel.org/pub/software/scm/git/docs/git.html Git ready: learn Git one commit at a time http://www.gitready.com/ Mercurial: The Definitive Guide: http://hgbook.red-bean.com/read/index.html Control de versiones y Subversion http://www.slideshare.net/jlpino/control-de- versiones-y-subversion How I learned to love revision control http://www.slideshare.net/yargevad/how-i- learned-to-love-revision-controlM Imgenes: www.2touchsoccer.com www.soccertraining.com www.soccerdrillstips.com eteamz.com www.nconnect.net www.connaughtceltic.com Recomendaciones y primeros pasos 34. 18 nov '10