SlideShare a Scribd company logo
1 of 34
18 nov '10
Sistemas de control de versiones
Noviembre de 2010
18 nov '10
Si las cosas fueran perfectas...
● No habría que
depurar...
● El trabajo sería
colaborativo...
● Absorberíamos los
posibles errores...
● <Inserte buenos
deseos aquí>
Introducción
18 nov '10
... pero como (afortunadamente) no
es así
Administración
● Del tiempo
● De los recursos
● De la gente
● Planeación,
organización,
dirección y control.
Introducción
18 nov '10
Las tres herramientas básicas de
cualquier programador
● Editor de texto
● Sistema de control de
versiones
● Sistema de
automatización de
construcciones
Introducción
18 nov '10
Las tres herramientas básicas de
cualquier programador
Se contempla sólo
para proyectos
“grandes”
● Editor de texto
● Sistema de control de
versiones
● Sistema de
automatización de
construcciones
Introducción
18 nov '10
¿Qué caso tiene?
Introducción
18 nov '10
Agenda
● ¿Qué es un control de versiones?
● Terminología básica
● Comandos básicos
● Estrategias de organización
● Recomendaciones y primeros pasos
Introducción
18 nov '10
Control de versiones
● Administración de
cambios a archivos
● Común en desarrollo
de software porque
un equipo puede
cambiar los mismos
archivos
● Los cambios se
representan con un
código: r16
¿Qué es un sistema de control de versiones?
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?
18 nov '10
¿Centralizado o distribuido?
● De las mejores
maneras para iniciar
una guerra “religiosa”
● Lo importante es la
protección contra la
“Ley de Murphy”
¿Qué es un sistema de control de versiones?
18 nov '10
¿Usarlo o no usarlo?
● Murphy de nuevo
● Trabajo en equipo
● Claridad
● Organización
● Salud mental
¿Qué es un sistema de control de versiones?
18 nov '10
Hablemos de control de versiones
... en inglés (get used to it)
Baseline
Producto(s) a usarse
como base lógica de
comparación
● Working copy
Copia local y privada
● Revision
“Instantánea” en un momento dado
Terminología básica
18 nov '10
Versiones
Trunk
Branch
Discontinued
branch
Tags
Terminología básica
18 nov '10
Trabajando
Checkout
Change, diff, delta Commit, checkin
Repository
Terminología básica
18 nov '10
Compartiendo
Merge
Conflict Resolve
Terminología básica
File-locking
18 nov '10
¿Cómo crear un repositorio?
$ svnadmin create ejemplo
$ hg init ejemplo
$ git init ejemplo
Comandos básicos
18 nov '10
¿Cómo “bajar” una copia?
$ svn checkout||co [RUTA]
$ hg update||up||checkout||co [RUTA]
$ git checkout [RUTA]
Comandos básicos
18 nov '10
¿Cómo actualizar la copia local?
$ svn update||up
$ hg update||up||checkout||co
$ git pull
Comandos básicos
18 nov '10
¿Cómo almacenar cambios?
$ svn commit||ci [RUTA]
$ hg commit||ci [RUTA]
$ git push||commit [RUTA]
Comandos básicos
18 nov '10
¿Cómo almacenar nuevas cosas?
$ svn add [RUTA]
$ hg add [RUTA]
$ git add [RUTA]
Comandos básicos
18 nov '10
¿Cómo dejar de almacenar cosas?
$ svn delete||del||remove||rm [RUTA]
$ hg remove [RUTA]
$ git branch -d||D [RUTA]
Comandos básicos
18 nov '10
... entonces, ¿hay diferencia?
Comandos básicos
Al tener distintos objetivos
específicos, proporcionan
distintas características
18 nov '10
¿Por qué Subversion?
● Commits atómicos
● Al renombrar, mover o copiar archivos se
preserva el historial
● Se versionan los directorios
● Soporte nativo para binarios y tipos
MIME
● Múltiples protocolos incluyendo http y
https
● Se guardan y envían sólo los cambios
entre versiones
Comandos básicos
18 nov '10
¿Por qué Git?
● Ramas locales sin coste adicional
● Todo es local
● Rápido en rendimiento
● Tamaño pequeño
● Área de montaje: elegir qué archivos se enviarán y cuándo
● Todos tienen una copia completa, en caso de problemas
● Se adapta a múltiples flujos de trabajo
● GitHub: la red social del código
● Las revisiones se marcan como hashes SHA-1
Comandos básicos
18 nov '10
¿Por qué Mercurial?
● Soporte desde siempre para múltiples plataformas
● TortoiseHg: un GUI
● Sin necesidad de optimizaciones periódicas (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
números enteros locales
● Mapea nombres de usuario: además de usernames, nombres
completos y correos electrónicos
Comandos básicos
18 nov '10
Ingeniería de software
● Etiquetas (sólo
lectura)
● Ramas (aislamiento)
● Desarrollo en paralelo
Estrategias de organización
18 nov '10
Desarrollo Web
● Pruebas (sandboxed)
● “Staging sites”:
ensamblado, pruebas
y evaluaciones antes
de ir a producción
(garantía de calidad o
QA)
● Desarrollo en paralelo
Estrategias de organización
18 nov '10
Administración de sistemas
● Respaldo (y rápida
recuperación)
● Organización
● Documentación
Estrategias de organización
18 nov '10
Su punto débil
● Pueden reforzar esquemas
jerárquicos de desarrollo
● Dependencia en
infraestructura: servidor o
programas adicionales
● Curva de aprendizaje:
pareciera sólo para
desarrolladores
● Disciplina: hay que usarlos
Recomendaciones y primeros pasos
18 nov '10
¿Dónde 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
18 nov '10
Comparativas y manuales
● Bloggeros y editores:
Para no comenzar de
cero...
● Buscar diferentes
fuentes
● ¿Dudas específicas?
Motores de búsqueda
Recomendaciones y primeros pasos
18 nov '10
... y no olvidar
● Se trata de
herramientas de
trabajo
COLABORATIVO
Recomendaciones y primeros pasos
18 nov '10
Bibliografía y mesografía
●
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
Imágenes:
● www.2touchsoccer.com www.soccertraining.com
● www.soccerdrillstips.com eteamz.com
● www.nconnect.net www.connaughtceltic.com
Recomendaciones y primeros pasos
18 nov '10

More Related Content

What's hot

Mini-tutorial de git
Mini-tutorial de gitMini-tutorial de git
Mini-tutorial de gitAntonio Ognio
 
Control de versiones con GIT
Control de versiones con GITControl de versiones con GIT
Control de versiones con GITJulio Silva
 
Introducción al uso Git y GitHub para trabajo colaborativo
Introducción al uso Git y GitHub para trabajo colaborativoIntroducción al uso Git y GitHub para trabajo colaborativo
Introducción al uso Git y GitHub para trabajo colaborativoJuan J. Merelo
 
Uso de git (Cursos de e-ghost 2011)
Uso de git (Cursos de e-ghost 2011)Uso de git (Cursos de e-ghost 2011)
Uso de git (Cursos de e-ghost 2011)Iñaki Arenaza
 
Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantesnscoder_mad
 
El git nuestro de cada dia
El git nuestro de cada diaEl git nuestro de cada dia
El git nuestro de cada diaAlan Descoins
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a GitManuel Ceron
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a GitSergio Rus
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque prácticoPatxi Gortázar
 
Git: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoGit: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoAprende Git
 
Deploy gitlab vía ftp
Deploy gitlab vía ftp Deploy gitlab vía ftp
Deploy gitlab vía ftp MizaelMartinez2
 

What's hot (16)

Git: control de versiones
Git: control de versionesGit: control de versiones
Git: control de versiones
 
Mini-tutorial de git
Mini-tutorial de gitMini-tutorial de git
Mini-tutorial de git
 
Git flow en github
Git flow en githubGit flow en github
Git flow en github
 
Git flow en gitlab
Git flow en gitlabGit flow en gitlab
Git flow en gitlab
 
Control de versiones con GIT
Control de versiones con GITControl de versiones con GIT
Control de versiones con GIT
 
Introducción al uso Git y GitHub para trabajo colaborativo
Introducción al uso Git y GitHub para trabajo colaborativoIntroducción al uso Git y GitHub para trabajo colaborativo
Introducción al uso Git y GitHub para trabajo colaborativo
 
Uso de git (Cursos de e-ghost 2011)
Uso de git (Cursos de e-ghost 2011)Uso de git (Cursos de e-ghost 2011)
Uso de git (Cursos de e-ghost 2011)
 
Git para-principiantes
Git para-principiantesGit para-principiantes
Git para-principiantes
 
El git nuestro de cada dia
El git nuestro de cada diaEl git nuestro de cada dia
El git nuestro de cada dia
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Git: un enfoque práctico
Git: un enfoque prácticoGit: un enfoque práctico
Git: un enfoque práctico
 
Introducción a Git
Introducción a GitIntroducción a Git
Introducción a Git
 
Git: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativoGit: flujos de trabajo y herramientas para trabajo colaborativo
Git: flujos de trabajo y herramientas para trabajo colaborativo
 
Git Primeros pasos
Git Primeros pasosGit Primeros pasos
Git Primeros pasos
 
Deploy gitlab vía ftp
Deploy gitlab vía ftp Deploy gitlab vía ftp
Deploy gitlab vía ftp
 

Viewers also liked

Elaboracion De Prototipos, Rad Y Programacion Extrema
Elaboracion De Prototipos, Rad Y Programacion ExtremaElaboracion De Prototipos, Rad Y Programacion Extrema
Elaboracion De Prototipos, Rad Y Programacion ExtremajuniorCUA
 
Rad (desarrollo rápido de aplicaciones)
Rad (desarrollo rápido de aplicaciones)Rad (desarrollo rápido de aplicaciones)
Rad (desarrollo rápido de aplicaciones)Jenyfer Utitiaja
 
Diagramas rad ejemplos
Diagramas rad ejemplosDiagramas rad ejemplos
Diagramas rad ejemploscarlossdani
 
Diagrama pad
Diagrama padDiagrama pad
Diagrama padUTCH
 
Desarrollo rápido de aplicaciones (rad)
Desarrollo rápido de aplicaciones (rad)Desarrollo rápido de aplicaciones (rad)
Desarrollo rápido de aplicaciones (rad)Jean Carlos Toa
 
Modelo de Desarrollo Rápido de Aplicaciones (DRA)
Modelo de Desarrollo Rápido de Aplicaciones (DRA)Modelo de Desarrollo Rápido de Aplicaciones (DRA)
Modelo de Desarrollo Rápido de Aplicaciones (DRA)Miguel Rodríguez
 

Viewers also liked (7)

Elaboracion De Prototipos, Rad Y Programacion Extrema
Elaboracion De Prototipos, Rad Y Programacion ExtremaElaboracion De Prototipos, Rad Y Programacion Extrema
Elaboracion De Prototipos, Rad Y Programacion Extrema
 
Rad (desarrollo rápido de aplicaciones)
Rad (desarrollo rápido de aplicaciones)Rad (desarrollo rápido de aplicaciones)
Rad (desarrollo rápido de aplicaciones)
 
Diagramas rad ejemplos
Diagramas rad ejemplosDiagramas rad ejemplos
Diagramas rad ejemplos
 
Diagrama pad
Diagrama padDiagrama pad
Diagrama pad
 
Desarrollo rápido de aplicaciones (rad)
Desarrollo rápido de aplicaciones (rad)Desarrollo rápido de aplicaciones (rad)
Desarrollo rápido de aplicaciones (rad)
 
Modelo de Desarrollo Rápido de Aplicaciones (DRA)
Modelo de Desarrollo Rápido de Aplicaciones (DRA)Modelo de Desarrollo Rápido de Aplicaciones (DRA)
Modelo de Desarrollo Rápido de Aplicaciones (DRA)
 
Desarrollo rápido de aplicaciones
Desarrollo rápido de aplicacionesDesarrollo rápido de aplicaciones
Desarrollo rápido de aplicaciones
 

Similar to Sistemas de control de versiones

Curso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en GithubCurso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en GithubCarlos Huamaní
 
Administra tu código con Git y Github
Administra tu código con Git y GithubAdministra tu código con Git y Github
Administra tu código con Git y GithubJavier Novoa Cataño
 
Git y Github basico.pptx
Git y Github basico.pptxGit y Github basico.pptx
Git y Github basico.pptxssuser36d4d3
 
Git & GitHub Part II
Git & GitHub Part IIGit & GitHub Part II
Git & GitHub Part IIMax Rodriguez
 
OCA: Experiencia, Gestión, Funcionamiento
OCA: Experiencia, Gestión, FuncionamientoOCA: Experiencia, Gestión, Funcionamiento
OCA: Experiencia, Gestión, FuncionamientoMaxime Chambreuil
 
¿Como colaborar en Debian?
¿Como colaborar en Debian?¿Como colaborar en Debian?
¿Como colaborar en Debian?Ernesto Crespo
 
GIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdfGIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdfMartinBonuccelli
 
Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando GitHugo Gilmar Erazo
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasJosé Moreno
 
Control de Versiones con Subversion (SVN)
Control de Versiones con Subversion (SVN)Control de Versiones con Subversion (SVN)
Control de Versiones con Subversion (SVN)Fco Javier Lucena
 
Tabla y Manual de instalación de PostgreSQL 9.5
Tabla y Manual de instalación de PostgreSQL 9.5Tabla y Manual de instalación de PostgreSQL 9.5
Tabla y Manual de instalación de PostgreSQL 9.5AdrianAsisVegaSegura
 
Desarrollar e Implementar CI/CD con Github Actions - oct. 28
Desarrollar e Implementar CI/CD con Github Actions - oct. 28Desarrollar e Implementar CI/CD con Github Actions - oct. 28
Desarrollar e Implementar CI/CD con Github Actions - oct. 28CloudNativeElSalvado
 
Recuperacion de defaces con versionador Git por Alevsk
Recuperacion de defaces con versionador Git por Alevsk Recuperacion de defaces con versionador Git por Alevsk
Recuperacion de defaces con versionador Git por Alevsk Websec México, S.C.
 
Despliegue de aplicaciones PHP
Despliegue de aplicaciones PHPDespliegue de aplicaciones PHP
Despliegue de aplicaciones PHPAlicantePHP
 

Similar to Sistemas de control de versiones (20)

Curso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en GithubCurso: Publicando mi proyecto web en Github
Curso: Publicando mi proyecto web en Github
 
Git y github
Git y githubGit y github
Git y github
 
Administra tu código con Git y Github
Administra tu código con Git y GithubAdministra tu código con Git y Github
Administra tu código con Git y Github
 
Git y Github basico.pptx
Git y Github basico.pptxGit y Github basico.pptx
Git y Github basico.pptx
 
Git & GitHub Part II
Git & GitHub Part IIGit & GitHub Part II
Git & GitHub Part II
 
Intro a GIT
Intro a GITIntro a GIT
Intro a GIT
 
Git windows
Git windowsGit windows
Git windows
 
OCA: Experiencia, Gestión, Funcionamiento
OCA: Experiencia, Gestión, FuncionamientoOCA: Experiencia, Gestión, Funcionamiento
OCA: Experiencia, Gestión, Funcionamiento
 
Tema 1 Control de Versiones
Tema 1 Control de VersionesTema 1 Control de Versiones
Tema 1 Control de Versiones
 
¿Como colaborar en Debian?
¿Como colaborar en Debian?¿Como colaborar en Debian?
¿Como colaborar en Debian?
 
GIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdfGIT presentación de teoría y practica.pdf
GIT presentación de teoría y practica.pdf
 
Control de versiones utilizando Git
Control de versiones utilizando GitControl de versiones utilizando Git
Control de versiones utilizando Git
 
Git workflow
Git workflowGit workflow
Git workflow
 
Presentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones SegurasPresentacion #2 github Aplicaciones Seguras
Presentacion #2 github Aplicaciones Seguras
 
Control de Versiones con Subversion (SVN)
Control de Versiones con Subversion (SVN)Control de Versiones con Subversion (SVN)
Control de Versiones con Subversion (SVN)
 
Tabla y Manual de instalación de PostgreSQL 9.5
Tabla y Manual de instalación de PostgreSQL 9.5Tabla y Manual de instalación de PostgreSQL 9.5
Tabla y Manual de instalación de PostgreSQL 9.5
 
Desarrollar e Implementar CI/CD con Github Actions - oct. 28
Desarrollar e Implementar CI/CD con Github Actions - oct. 28Desarrollar e Implementar CI/CD con Github Actions - oct. 28
Desarrollar e Implementar CI/CD con Github Actions - oct. 28
 
Recuperacion de defaces con versionador Git por Alevsk
Recuperacion de defaces con versionador Git por Alevsk Recuperacion de defaces con versionador Git por Alevsk
Recuperacion de defaces con versionador Git por Alevsk
 
Git workflow v2
Git workflow  v2Git workflow  v2
Git workflow v2
 
Despliegue de aplicaciones PHP
Despliegue de aplicaciones PHPDespliegue de aplicaciones PHP
Despliegue de aplicaciones PHP
 

Recently uploaded

presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxlosdiosesmanzaneros
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilJuanGallardo438714
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 

Recently uploaded (15)

presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 

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 habría que depurar... ● El trabajo sería colaborativo... ● Absorberíamos los posibles errores... ● <Inserte buenos deseos aquí> Introducción
  • 3. 18 nov '10 ... pero como (afortunadamente) no es así Administración ● Del tiempo ● De los recursos ● De la gente ● Planeación, organización, dirección y control. Introducción
  • 4. 18 nov '10 Las tres herramientas básicas de cualquier programador ● Editor de texto ● Sistema de control de versiones ● Sistema de automatización de construcciones Introducción
  • 5. 18 nov '10 Las tres herramientas básicas de cualquier programador Se contempla sólo para proyectos “grandes” ● Editor de texto ● Sistema de control de versiones ● Sistema de automatización de construcciones Introducción
  • 6. 18 nov '10 ¿Qué caso tiene? Introducción
  • 7. 18 nov '10 Agenda ● ¿Qué es un control de versiones? ● Terminología básica ● Comandos básicos ● Estrategias de organización ● Recomendaciones y primeros pasos Introducción
  • 8. 18 nov '10 Control de versiones ● Administración de cambios a archivos ● Común en desarrollo de software porque un equipo puede cambiar los mismos archivos ● Los cambios se representan con un código: 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 protección 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 ● Organización ● Salud mental ¿Qué es un sistema de control de versiones?
  • 12. 18 nov '10 Hablemos de control de versiones ... en inglés (get used to it) Baseline Producto(s) a usarse como base lógica de comparación ● Working copy Copia local y privada ● Revision “Instantánea” en un momento dado Terminología básica
  • 14. 18 nov '10 Trabajando Checkout Change, diff, delta Commit, checkin Repository Terminología básica
  • 15. 18 nov '10 Compartiendo Merge Conflict Resolve Terminología básica File-locking
  • 16. 18 nov '10 ¿Cómo crear un repositorio? $ svnadmin create ejemplo $ hg init ejemplo $ git init ejemplo Comandos básicos
  • 17. 18 nov '10 ¿Cómo “bajar” una copia? $ svn checkout||co [RUTA] $ hg update||up||checkout||co [RUTA] $ git checkout [RUTA] Comandos básicos
  • 18. 18 nov '10 ¿Cómo actualizar la copia local? $ svn update||up $ hg update||up||checkout||co $ git pull Comandos básicos
  • 19. 18 nov '10 ¿Cómo almacenar cambios? $ svn commit||ci [RUTA] $ hg commit||ci [RUTA] $ git push||commit [RUTA] Comandos básicos
  • 20. 18 nov '10 ¿Cómo almacenar nuevas cosas? $ svn add [RUTA] $ hg add [RUTA] $ git add [RUTA] Comandos básicos
  • 21. 18 nov '10 ¿Cómo dejar de almacenar cosas? $ svn delete||del||remove||rm [RUTA] $ hg remove [RUTA] $ git branch -d||D [RUTA] Comandos básicos
  • 22. 18 nov '10 ... entonces, ¿hay diferencia? Comandos básicos Al tener distintos objetivos específicos, proporcionan distintas características
  • 23. 18 nov '10 ¿Por qué Subversion? ● Commits atómicos ● Al renombrar, mover o copiar archivos se preserva el historial ● Se versionan los directorios ● Soporte nativo para binarios y tipos MIME ● Múltiples protocolos incluyendo http y https ● Se guardan y envían sólo los cambios entre versiones Comandos básicos
  • 24. 18 nov '10 ¿Por qué Git? ● Ramas locales sin coste adicional ● Todo es local ● Rápido en rendimiento ● Tamaño pequeño ● Área de montaje: elegir qué archivos se enviarán y cuándo ● Todos tienen una copia completa, en caso de problemas ● Se adapta a múltiples flujos de trabajo ● GitHub: la red social del código ● Las revisiones se marcan como hashes SHA-1 Comandos básicos
  • 25. 18 nov '10 ¿Por qué Mercurial? ● Soporte desde siempre para múltiples plataformas ● TortoiseHg: un GUI ● Sin necesidad de optimizaciones periódicas (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 números enteros locales ● Mapea nombres de usuario: además de usernames, nombres completos y correos electrónicos Comandos básicos
  • 26. 18 nov '10 Ingeniería de software ● Etiquetas (sólo lectura) ● Ramas (aislamiento) ● Desarrollo en paralelo Estrategias de organización
  • 27. 18 nov '10 Desarrollo Web ● Pruebas (sandboxed) ● “Staging sites”: ensamblado, pruebas y evaluaciones antes de ir a producción (garantía de calidad o QA) ● Desarrollo en paralelo Estrategias de organización
  • 28. 18 nov '10 Administración de sistemas ● Respaldo (y rápida recuperación) ● Organización ● Documentación Estrategias de organización
  • 29. 18 nov '10 Su punto débil ● Pueden reforzar esquemas jerárquicos de desarrollo ● Dependencia en infraestructura: servidor o programas adicionales ● Curva de aprendizaje: pareciera sólo para desarrolladores ● Disciplina: hay que usarlos Recomendaciones y primeros pasos
  • 30. 18 nov '10 ¿Dónde 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 específicas? Motores de búsqueda 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 Bibliografía y mesografía ● 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 Imágenes: ● www.2touchsoccer.com www.soccertraining.com ● www.soccerdrillstips.com eteamz.com ● www.nconnect.net www.connaughtceltic.com Recomendaciones y primeros pasos