01 por qué importa un control de versiones (1)

download 01 por qué importa un control de versiones (1)

of 22

  • date post

    31-Jan-2016
  • Category

    Documents

  • view

    18
  • download

    0

Embed Size (px)

description

01 por qué importa un control de versiones (1)

Transcript of 01 por qué importa un control de versiones (1)

  • Introduccin a Git

    La vida sin control de versiones

    Cmo funciona el control de versiones

    Por qu Git

  • Introduccin a Git

    Version Control System permite a todos los desarrolladores y diseadores a trabajar en el mismo cdigo base

    No teniendo que estar atentos a todo lo que cambian los dems and going insane for that reason

    Su nombre significa que puedes controlar todas las diferentes versiones sobre las que ests trabajando

    Tambin es llamado Source Control System

    VCS

  • La vida sin control de versiones

    Existen programadores cowboys llamados asporque eligen trabajar sin prestar atencin a las mejores prcticas de programacin aceptadas

    Imaginemos uno de estos programadores que estn desarrollando un app para un cliente

    Empezara programando la estructura bsica del proyecto para servir de plantilla antes de saber que quiere el cliente

    Nuestro cowboy trabajara varios das creando nuevos ficheros y haciendo modificaciones en otros para una nueva funcionalidad super chula

    Programadores cowboys

  • La vida sin control de versiones

    Al enviar esta funcionalidad el cliente la rechaza y nuestro cowboy borra el cdigo y contina trabajando

    Unos das despus el cliente ha cambiado de opinin y acepta esta funcionalidad

    Nuestro cowboy tendr que reescribir todo el cdigo o buscar entre sus correos y backups la funcionalidad

    Programadores cowboys

  • La vida sin control de versiones

    Adems un proyecto por ejemplo Android tiene multitud de ficheros xml, java, imgenes es muy complicado restaurar un proyecto antiguo

    Otra opcin sera tener copias de seguridad de todo el proyecto, pero necesitara muchsimo espacio

    En caso de trabajar en un equipo, tendran que comparar lnea a lnea los cambios

    Esto solo funcionar mientras nuestro cowboy trabaje solo

    Programadores cowboys

  • La vida sin control de versiones

    Si nuestro programador cowboy hubiera utilizado CVS podra guardar una copia de cada fichero guardado

    De esta manera tendr una serie de versiones de su app, 0.1, 0.2, 0.3 etc.

    Cada una de estas tendr una descripcin de los cambios y funcionalidades aadidas

    Solo se guardarn los archivos modificados Es muy fcil compartir cdigo y probarlo en diferentes

    ramas sin interferir a los demas

    Programadores cowboys

  • Cual de los siguientes caractersticas pertenece a un sistema de control de versiones?a. Solo instala diferentes versiones de herramientas y

    frameworks, como Java o Objetive Cb. Ayuda a enfocarse en la parte ms importante de

    una tarea a manoc. Monitoriza la calidad de tu cdigo y te dice cuando

    no ests siguiendo las mejores prcticasd. Hace muy fcil colaborar con otras personas en un

    proyecto.

    Test

  • Un programador Cowboy mantiene su propio sistema de control de versiones. por qu es una mala idea?a. Ocupa una gran cantidad de espacio, necesita un

    gran esfuerzo de tiempo y es muy difcil de compartir con otras personas que trabaja con los mismos ficheros.

    b. No ayuda a instalar diferentes versiones de frameworks que esta utilizando permitindole cambiar fcilmente entre ellas

    c. El cliente no sabr nada sobre el proyecto, har ms lento el sistema y ser dificil arreglar los datos

    Test

  • Un programador Cowboy no puede tener acceso al historial de su proyecto para recuperar algo que borr. porqu es una buena idea tener acceso al historial de tus cambios?a. Es importante tener acceso al historial de tu proyecto

    para que puedas hacer una idea de cuanto cobrar al cliente

    b. Es importante tener acceso al historial de tu proyecto para determinar que necesitars despus

    c. Es importante tener acceso al historial de tu proyecto para poder revisar cambios si est confundido con cdigo ms antiguo.

    d. Todas son correctas

    Test

  • Qu hace difcil trabajar con gente que no usa un control de versiones?a. No es dificil, solo necesita un extra de coordinacinb. Si un control de versiones, es difcil unir cambios

    entre ficheros que han tocado diferentes personas.c. Sin un control de versiones, no sabemos quienes

    estn trabajando en el proyectod. Sin un control de versiones no hay una buena

    manera de verificar si est bien escrito el cdigo de nuestros colegas

    Test

  • Un sistema de control de versiones mantiene un detallado historial con todos los cambios que has realizado en tus proyectosa. Verdaderob. Falso

    Test

  • Cmo funciona el control de versiones

    Un repositorio es una coleccin de todas las versiones de un proyecto junto a ms informacin

    Un repositorio nos da informacin sobre el orden en el que ocurrieron los cambios, una descripcin de cada cambio y quin lo realiz

    Cada proyecto debera tener su propio repositorio

  • Cmo funciona el control de versiones

    Existen tareas que pueden demorarse varios das o semanas, por lo que hasta que no se complete no se publicar nueva versin

    Debemos indicar al CVS cuando una versin est terminada manualmente, esto se llama commiting

    Las versiones se llaman commits (del ingls enviar y comprometerse por el envo)

    Toda informacin es guardada en carpetas especiales ocultas para no aadir complejidad

  • Cmo funciona el control de versiones

    Los CVS tienen la funcionalidad de mostrar una lista de commits o incluso cambiar la versin de tu proyecto a alguna de estas versiones

  • Cmo funciona el control de versiones

    Los CVS tambin permiten compartir los proyectos con otros usuarios para colaborar y no perder de vista los cambios de los dems

    Tambin aaden herramientas especializadas para ayudarnos a trabajar con proyectos grandes y complicados

    Existen muchos controles de versiones: CVS, SVN, Mercury, Git depende de nuestras preferencias cual es mejor utilizar Sistema Operativo Editor de texto ...

  • Por qu Git

    Git es un SCV desarrollado por Linus Torvalds para ayudarle a administrar todo el trabajo del mantenimiento del ncleo de Linux

    El ncleo de linux tiene ms de 15 millones de lneas de cdigo

    Cada da se aaden 3500 nuevas lneas de cdigo Cada nueva versin del kernel involucra a ms de 1000

    desarrolladores diferentes Git se desarroll para hacer la colaboracin lo ms

    rpida e indolora posible

    Git

  • Por qu Git

    Existen otros sistemas decontrol de versiones centralizados donde solo existe un repositorio guardado en un servidor en red

    Estos tienen una serie de desventajas frente a los distribuidos No puedes realizar ningn trabajo en tu proyecto sin

    conectarte a la red Si ocurre algo a ese repositorio podras perder todo

    el historial de tu proyecto La necesidad de requerir que todo pase por el

    servidor central puede dificultar la colaboracin

    Control de Versiones Centralizados (SVN)

  • Por qu Git

    Git es un sistema de control deversiones distribuido dondeno existe un repositorio central

    Git tienen una serie de ventajas frente a los centralizados Tienes tu propio repositorio, por lo que no necesitas

    estar conectado a la red para trabajar en el repositorio

    Las interacciones con el repositorio son ms rpidas La colaboracin es ms fcil, solo hay que coger tu

    propia copia del repositorio y empezar

    Control de Versiones Distribuidos (GIT)

  • Por qu Git

    Linus Torvalds no tena originalmente la idea de que Git fuera un CVS si no una coleccin de herramientas y comandos para que alguien pudiera utilizarlos para construir un CVS

    Este sera el motor de un buen CVS que funcionara rpido y fcil y la gente podra utilizar cualquier carrocera con ese motor

    Con el tiempo Git tendra un motor y una carrocera propias, por lo que evolucion a un CVS completamente funcional

    La ventaja es que todava hay acceso completo al motor, pudiendo realizar operaciones muy avanzadas con Git, haciendo tu repositorio muy robusto y seguro

    arquitectura de Git

  • Por qu Git

    Es el sitio ms popular para compartir tu cdigo y administrartus proyectos

    Es como una red social para tu repositorio Puedes compartir tus proyectos online Hacer publicidad de tus proyectos Compartir proyectos de forma privada con tus

    amigos y colaboradores Otras personas pueden ver el historial de tu proyecto

    y aadir comentarios o incluso subir sus propias commits para mejorar tu proyecto

    GitHub

  • Webgrafa

    Cowboy coder http://c2.com/cgi/wiki?CowboyCoder http://git-scm.com/book/en/Getting-Started-About-

    Version-Control http://en.wikipedia.org/wiki/Distributed_revision_control http://en.wikipedia.org/wiki/Linus_Torvalds http://stackoverflow.com/questions/740053/why-should-i-

    use-git-instead-of-svn http://git-scm.com/book/ch9-1.html http://royal.pingdom.com/2012/04/16/linux-kernel-

    development-numbers/ http://git-scm.com/