PDF de programación - El sistema de control de versiones Mercurial - Basado en la presentación homónima de Bryan O'Sullivan

Imágen de pdf El sistema de control de versiones Mercurial - Basado en la presentación homónima de Bryan O

El sistema de control de versiones Mercurial - Basado en la presentación homónima de Bryan O'Sullivangráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 4 de Noviembre del 2017)
757 visualizaciones desde el 4 de Noviembre del 2017
350,1 KB
37 paginas
Creado hace 16a (30/06/2007)
El sistema de control de versiones Mercurial
Basado en la presentaci´on hom´onima de Bryan O’Sullivan

Germ´an Poo Caama˜no

[email protected]

OpenCommunity 2007

Agenda

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares

Demo

Consultas

1 Preliminares
Conceptos
Ayudarme a trabajar con otras personas
Permitirme trabajar eficientemente
Mercurial

Germ´an Poo Caama˜no

Mercurial

Agenda

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares

Demo

Consultas

1 Preliminares
Conceptos
Ayudarme a trabajar con otras personas
Permitirme trabajar eficientemente
Mercurial

2 Demo

Germ´an Poo Caama˜no

Mercurial

Agenda

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares

Demo

Consultas

1 Preliminares
Conceptos
Ayudarme a trabajar con otras personas
Permitirme trabajar eficientemente
Mercurial

2 Demo

3 Consultas

Germ´an Poo Caama˜no

Mercurial

El proyecto

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares
Conceptos

Ayudarme a trabajar
con otras personas

Permitirme trabajar
eficientemente

Mercurial

Demo

Consultas

Comienza en abril de 2005
95 % del c´odigo en Python
Apr´oximadamente 750 l´ıneas en C, para obener mayor
velocidad.
R´apido crecimiento

Germ´an Poo Caama˜no

Mercurial

Suposiciones

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares
Conceptos

Ayudarme a trabajar
con otras personas

Permitirme trabajar
eficientemente

Mercurial

Demo

Consultas

Quieres administrar algunos archivos

C´odigo fuente
Sitio web
Directorio home
Una novela

No te asusta el shell o l´ınea de comandos

Germ´an Poo Caama˜no

Mercurial

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares
Conceptos

Ayudarme a trabajar
con otras personas

Permitirme trabajar
eficientemente

Mercurial

Demo

Consultas

Proyectos que usan Mercurial

OpenSolaris
Mozilla
Xen
e2fsprogs
ALSA
video4linux
One Laptop Per Child
Moin Moin
FreeBSD ports
...

Germ´an Poo Caama˜no

Mercurial

Sistemas de control de versiones
Est´a lleno de ellos

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares
Conceptos

Ayudarme a trabajar
con otras personas

Permitirme trabajar
eficientemente

Mercurial

Demo

Consultas

BitKeeper
ClearCase
Perforce

Arch
Bazaar-NG
Darcs
git
Subversion
CVS

Germ´an Poo Caama˜no

Mercurial

Perspectiva del desarrollador

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares
Conceptos

Ayudarme a trabajar
con otras personas

Permitirme trabajar
eficientemente

Mercurial

Demo

Consultas

Debe ser f´acil de entender
Ayudarme a trabajar con otras personas
Permitirme trabajar eficientemente

Germ´an Poo Caama˜no

Mercurial

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares
Conceptos

Ayudarme a trabajar
con otras personas

Permitirme trabajar
eficientemente

Mercurial

Demo

Consultas

Debe ser f´acil de entender
Conceptos

Repositorio
Changeset (conjunto de cambios)
Directorio de trabajo

Germ´an Poo Caama˜no

Mercurial

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares
Conceptos

Ayudarme a trabajar
con otras personas

Permitirme trabajar
eficientemente

Mercurial

Demo

Consultas

Repositorio
Caracter´ısticas

Sencillo

Un directorio que contiene la historia del proyecto
No hay base de datos especial, ni servidor central

Ligero

Hace una copia de un repositorio (clone) es econ´omico

Omnipresente

Todo el desarrollo se realiza en repositorios y cada cual trabaja en
sus propios repositorios

Germ´an Poo Caama˜no

Mercurial

Repositorio
Contenido de un repositorio

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares
Conceptos

Ayudarme a trabajar
con otras personas

Permitirme trabajar
eficientemente

Mercurial

Demo

Consultas

Mercurial no expone estos detalles, s´olo sirve para saber como
funciona por dentro.

ChangeLog (registro de cambios). Historia de cambios al
repositorio.
Manifiesto. Historia de las versiones usado en cada
changeset.
Datos por cada archivo. Historia de cada archivo.

Germ´an Poo Caama˜no

Mercurial

Repositorio
Comparaci´on

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares
Conceptos

Ayudarme a trabajar
con otras personas

Permitirme trabajar
eficientemente

Mercurial

Demo

Consultas

Repositorio central Exactamente uno
Cuello de botella
Gesti´on de carga
Usuarios remotos
Fallo del servidor

Servidor central
Caro o imposible
Lento
Catastr´ofica

Los necesarios
Ninguno
Los que se quieran
Respuesta r´apida local
Respaldo completo del repo

Germ´an Poo Caama˜no

Mercurial

ChangeSet

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares
Conceptos

Ayudarme a trabajar
con otras personas

Permitirme trabajar
eficientemente

Mercurial

Demo

Consultas

Una instant´anea del proyecto en un momento determinado
Contenidos:

Autor del cambio (committer)
Descripci´on del cambio
Archivos que se modificaron
Cambios que se realizaron
Identificaci´on del padre de los cambios

A la creaci´on de un changeset se le llama commit

Germ´an Poo Caama˜no

Mercurial

Directorio de trabajo

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares
Conceptos

Ayudarme a trabajar
con otras personas

Permitirme trabajar
eficientemente

Mercurial

Demo

Consultas

Una vista del repostorio en un determinado changeset

Dicho changeset es el padre del directorio

Se puede editar cualquier archivo en el directorio

Los cambios ir´an en el siguiente changeset
Se puede a˜nadir, eliminar, renombrar o copiar archivos

Se puede ver qu´e se ha cambiado y como

Germ´an Poo Caama˜no

Mercurial

Gu´ıa r´apida

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares
Conceptos

Ayudarme a trabajar
con otras personas

Permitirme trabajar
eficientemente

Mercurial

Demo

Consultas

$ hg init myrepo # Crear un repositorio
$ cd myrepo
$ vi myfile
$ hg add myfile
$ hg status
$ hg commit

# Entra en ´el
# Editar un archivo
# Agregar archivo al repositorio
# Estado del archivo
# Guardar los cambios

Germ´an Poo Caama˜no

Mercurial

Perspectiva del desarrollador

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares
Conceptos

Ayudarme a trabajar
con otras personas

Permitirme trabajar
eficientemente

Mercurial

Demo

Consultas

Debe ser f´acil de entender
Ayudarme a trabajar con otras personas
Permitirme trabajar eficientemente

Germ´an Poo Caama˜no

Mercurial

Ayudarme a trabajar con otras personas
Trabajo paralelo

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares
Conceptos

Ayudarme a trabajar
con otras personas

Permitirme trabajar
eficientemente

Mercurial

Demo

Consultas

Es la forma natural de trabajar, a veces los sistemas de control de
versiones lo hacen dif´ıcil

Realizo algunos cambios
Los guardo (commit)

Germ´an Poo Caama˜no

Mercurial

Ayudarme a trabajar con otras personas
Resoluci´on de conflictos

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares
Conceptos

Ayudarme a trabajar
con otras personas

Permitirme trabajar
eficientemente

Mercurial

Demo

Consultas

¿Qu´e sucede si alguien guard´o cambios antes?

Es necesario conciliar los cambios (merge) antes de guardar
(commit)
Los cambios no se han guardado en forma permamente
Un error al conciliar los cambios puede hacer que pierda el
trabajo realizado

Germ´an Poo Caama˜no

Mercurial

Manejo de ramas de Mercurial

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares
Conceptos

Ayudarme a trabajar
con otras personas

Permitirme trabajar
eficientemente

Mercurial

Demo

Consultas

No olvidar que un changeset tiene un padre.
Dos changeset de con el mismo padre forman una rama.

Eso es una rama.

Germ´an Poo Caama˜no

Mercurial

Manejo de ramas de Mercurial
Fusi´on de cambios (merge)

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares
Conceptos

Ayudarme a trabajar
con otras personas

Permitirme trabajar
eficientemente

Mercurial

Demo

Consultas

Algunos changesets tienen dos ramas
Esos changesets son de fusi´on (merge)
Un changeset de conciliaci´on simplemente indica:
“As´ı reconcili´e los changesets A y B”

Germ´an Poo Caama˜no

Mercurial

Ayudarme a trabajar con otras personas
Desarrollo con m´as personas

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares
Conceptos

Ayudarme a trabajar
con otras personas

Permitirme trabajar
eficientemente

Mercurial

Demo

Consultas

Mercurial soporta de manera natural el trabajo en paralelo
Cada uno guarda los cambios cuando le parezca
Los cambios son limpios y autocontenidos
No se fusionan los cambios de otro de no haber guardado
primero los propios

Germ´an Poo Caama˜no

Mercurial

Ayudarme a trabajar con otras personas
Fusi´on de cambios

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares
Conceptos

Ayudarme a trabajar
con otras personas

Permitirme trabajar
eficientemente

Mercurial

Demo

Consultas

¿Y si me equivoco al fusionar los cambios?
No importa, los cambios a´un est´an ah´ı, as´ı que los tienes
No se pierde ning ´un trabajo
Simplemente se hace una refusi´on

Germ´an Poo Caama˜no

Mercurial

Ayudarme a trabajar con otras personas
Compartir es f´acil

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares
Conceptos

Ayudarme a trabajar
con otras personas

Permitirme trabajar
eficientemente

Mercurial

Demo

Consultas

Servidor web incluido
Integraci´on con Apache v´ıa CGI
Utiliza ssh para acceso remoto seguro
Se puede compartir el trabajor por email, pendrive, etc.

Germ´an Poo Caama˜no

Mercurial

Ayudarme a trabajar con otras personas
Compartir es sim´etrico

Mercurial

Germ´an Poo

Caama˜no

Agenda

Preliminares
Conceptos

Ayudarme a trabajar
con otras personas

Permitirme trabajar
eficientemente

Mercurial

Demo

Consultas

Clonar (clone) un repositorio para tener una copia local
Traer (pull) los nuevos cambios de un repositorio remoto
Llevar (push) los cambios a un repositorio remoto
Despu´es de un push, el repositorio remoto es id´entico al m´ıo

Germ´an Poo Caama˜no

Mercurial

Gu´ıa r´apida (# 2)

$ hg comit # He guardado mis cambios
$ hg push

# Propago mis cambios a otro

abort...

hg indica que fusione
$ vi pull # Traigo cambios remotos
$ hg merge # Fusiono los cambios
$ hg commit# Guardo los cambios
$ hg push

# Propago mis cambios a otro

Mercurial

Germ´an Poo

Caama˜no
  • Links de descarga
http://lwp-l.com/pdf7377

Comentarios de: El sistema de control de versiones Mercurial - Basado en la presentación homónima de Bryan O'Sullivan (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad