PDF de programación - git: Control de versiones estilo Linus

git: Control de versiones estilo Linusgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 6 de Febrero del 2018)
119 visualizaciones desde el 6 de Febrero del 2018
1,3 MB
50 paginas
Creado hace 6a (24/11/2012)
git: Control de versiones estilo Linus

Horst H. von Brand

Departamento de Inform´atica

Universidad T´ecnica Federico Santa Mar´ıa

24 de noviembre de 2012

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

Visi´on general

Control de versiones

Sistema de control de versiones para Linux

Plomer´ıa y porcelana

Algunos comandos

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

Definici´on
Modelos
El modelo de desarrollo de Linux

Definici´on de SCM

(cid:73) Software Configuration Management (SCM) es el conjunto de
actividades relacionadas con la administraci´on de versiones de
software

(cid:73) Muchos productos se encuentran en versiones diferentes en
diversos sitios. Desarrolladores tienen versiones en prueba.

(cid:73) Es una actividad vital en el desarrollo de todo proyecto.

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

Definici´on
Modelos
El modelo de desarrollo de Linux

Operaciones de SCM

(cid:73) Modificar

(cid:73) Checkout
(cid:73) Editar
(cid:73) Agregar, borrar, eliminar, mover
(cid:73) Commit
(cid:73) Deshacer modificaciones anteriores

(cid:73) Informaci´on

(cid:73) Estado actual
(cid:73) Estad´ısticas
(cid:73) Diferencias
(cid:73) Historia/Arqueolog´ıa

(cid:73) Manejo de tags
(cid:73) Manejo de ramas (branches): Crear, destruir, merge, tomar

cambios, . . .

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

Definici´on
Modelos
El modelo de desarrollo de Linux

Modelos de SCM

Centralizado: Todo se registra en un repositorio central. Se baja
una versi´on, se modifica, se ajusta localmente por
cambios en el intertanto y se sube.

Distribuido: Cada desarrollador tiene un repositorio propio.

Maneja sus propias versiones, intercambia
modificaciones con los dem´as.

Un sistema distribuido puede manejarse en forma centralizada, en
la pr´actica no se usan realmente todos contra todos. No fuerzan
una organizaci´on particular.
Los sistemas distribuidos son c´omodos para uso personal. Dado
que est´an pensados para interacci´on directa con el repositorio, es
simple usarlos en forma puramente local.

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

Definici´on
Modelos
El modelo de desarrollo de Linux

Modelo centralizado

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

Definici´on
Modelos
El modelo de desarrollo de Linux

Modelo distribuido

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

Definici´on
Modelos
El modelo de desarrollo de Linux

¿Sirve la descentralizaci´on?

(cid:73) Micro-commits no intrusivos
(cid:73) Manejo de ramas privadas
(cid:73) Operaci´on desconectada
(cid:73) No hay un ´unico punto de falla
(cid:73) Respaldos son triviales

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

Definici´on
Modelos
El modelo de desarrollo de Linux

El modelo de desarrollo de Linux

(cid:73) El n´ucleo es grande (3.6 es 15 680 036 l´ıneas de c´odigo) y

complejo

(cid:73) Son muchos desarrolladores independientes (entre 2005 y
2011, m´as de 7 800 desarrolladores de casi 800 compa˜n´ıas
participaron, alrededor de 1/3 con un ´unico parche)

(cid:73) El tr´afico de parches es gigantesco (10 247 parches en los 71

d´ıas entre 3.5 y 3.6, es un parche cada 10 minutos)

(cid:73) Hay un centenar de ´arboles para subsistemas, por los que la

mayor´ıa de los parches pasa camino a la versi´on “oficial”

(cid:73) Hay ´arboles de versiones estables que integran s´olo cambios

simples de poco riesgo y correcci´on de errores

(cid:73) Las distribuciones toman cambios selectivamente
Linux es marca registrada de Linus Torvalds

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

Definici´on
Modelos
El modelo de desarrollo de Linux

El modelo de desarrollo de Linux

(cid:73) Los desarrolladores se organizan en una jerarqu´ıa informal:
Linus a la cabeza, lugartenientes de Linus, responsables por
grandes subsistemas, . . .

(cid:73) Hay m´ultiples ramas: Versiones experimentales para
arquitecturas espec´ıficas, versiones estables (base de
distribuciones “enterprise”), ´areas completas como manejo de
redes o desarrollo de WiFi, drivers individuales, colecciones de
parches en prueba, . . .

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

Definici´on
Modelos
El modelo de desarrollo de Linux

Requisitos de SCM para Linux

(cid:73) Sistema distribuido (son muchas l´ıneas de desarrollo)
(cid:73) Gran rendimiento (ingresar cientos de parches por minuto)

(cid:73) No dar una posici´on especial al “due˜no del repositorio

maestro”

(cid:73) El compromiso de master.kernel.org mostr´o que no estar

atado a un repositorio fijo (Linus mantuvo una copia temporal
de Linux en git://github.com/torvalds/linux.git) es
vital.

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

GIT – The stupid content tracker

GIT – The stupid content tracker

“git” can mean anything, depending on your mood:

(cid:73) Random three-letter combination that is pronounceable, and
not actually used by any common Unix command. The fact
that it is a mispronunciation of “get” may or may not be
relevant

(cid:73) Stupid. Contemptible and despicable. Simple. Take your pick

from the dictionary of slang.

(cid:73) “Global information tracker”: You’re in a good mood, and it
actually works for you. Angels sing, and a light suddenly fills
the room.

(cid:73) “Goddamn idiotic truckload of sh*t”: When it breaks

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

GIT – The stupid content tracker

GIT – The stupid content tracker

I’m an egotistical bastard, so I name all my projects after myself.
First Linux, now git.

– Linus Torvalds

[En el slang brit´anico, “git” es “pig headed, think they are always
correct, argumentative”]

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

GIT – The stupid content tracker

GIT mejora. . .

Inicialmente, git era exclusivamente para uso de expertos en
arcanos mayores. En la serie 1.5 se hicieron grandes esfuerzos por
hacer que git fuera m´as f´acil de usar. El esfuerzo sigue, aunque
ahora se ha concentrado en la interacci´on con otros repositorios.

And then realize that nothing is perfect. Git is just *closer* to
perfect than any other SCM out there

– Linus Torvalds

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

GIT – The stupid content tracker

Control de versiones – ´Area de trabajo

(cid:73) Directorios y archivos

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

GIT – The stupid content tracker

Control de versiones – Repositorio

(cid:73) Objeto: Contenido de un archivo

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

GIT – The stupid content tracker

Control de versiones – Repositorio

(cid:73) Objeto: Contenido de un archivo
(cid:73) Commit: Contenidos de archivos y

metadatos

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

GIT – The stupid content tracker

Control de versiones – Repositorio

(cid:73) Objeto: Contenido de un archivo
(cid:73) Commit: Contenidos de archivos y

metadatos

(cid:73) Relaci´on entre commits:

Referencias a sus predecesores

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

GIT – The stupid content tracker

Control de versiones – Repositorio

(cid:73) Objeto: Contenido de un archivo
(cid:73) Commit: Contenidos de archivos y

metadatos

(cid:73) Relaci´on entre commits:

Referencias a sus predecesores
(cid:73) Tags: R´otulos en puntos de la

historia

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

GIT – The stupid content tracker

Control de versiones – Repositorio

(cid:73) Objeto: Contenido de un archivo
(cid:73) Commit: Contenidos de archivos y

metadatos

(cid:73) Relaci´on entre commits:

Referencias a sus predecesores
(cid:73) Tags: R´otulos en puntos de la

historia

(cid:73) Ramas: Punteros a commits

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

GIT – The stupid content tracker

Control de versiones – Relaci´on con ´area de trabajo

(cid:73) Ramas

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de control de versiones para Linux
Plomer´ıa y porcelana
Algunos comandos
Resumen

GIT – The stupid content tracker

Control de versiones – Relaci´on con ´area de trabajo

(cid:73) Ramas
(cid:73) HEAD apunta a una rama

H H v Brand

git: SCM `a la Linus

Control de versiones
Sistema de cont
  • Links de descarga
http://lwp-l.com/pdf8639

Comentarios de: git: Control de versiones estilo Linus (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

Revisar política de publicidad