• No se han encontrado resultados

Introducción a la Computación Sistemas de Control de Versiones (VCS)

N/A
N/A
Protected

Academic year: 2021

Share "Introducción a la Computación Sistemas de Control de Versiones (VCS)"

Copied!
16
0
0

Texto completo

(1)

Introducci´

on a la Computaci´

on

Sistemas de Control de Versiones (VCS)

Maximiliano Geier Facultad de Ciencias Exactas y Naturales, UBA

18/03/2015

(2)

Introducci´on

Introducci´

on

En esta materia vamos a programar en Python

Los programas se escriben en archivos de texto (notepad, TextPad, gedit, vim, etc.)

Van a tener que hacer un trabajo pr´actico grupal⇒compartir c´odigo Una forma sencilla de compartir c´odigo es por mail...

(3)

Introducci´on

Compartiendo informaci´

on

Un escenario posible:AyBhacen un informe juntos.

A B informe.doc B A informe (1).doc A B datos.xls B A informe final.doc B A datos VA ESTE.xls A B datos FINAL.xls

B A informe FINAL POSTA.doc

A B informe FINAL POSTA POSTA.doc

B A datos ULTIMOS CAMBIOS.xls

A B informe FINAL FINAL.doc

(4)

Introducci´on

Compartiendo informaci´

on

Otros escenarios:

“Uy... Esto andaba hasta ayer y no s´e qu´e toqu´e” “¡Rompiste todo! ¿Qu´e tocaste?”

“Me puse a agregar el punto 2 y romp´ı todo y ahora no s´e c´omo volver para atr´as”

“¿Para qu´e agregu´e esto de ac´a? Ya no me acuerdo”

(5)

VCS

Sistemas de Control de Versiones

Los Sistemas de Control de Versiones (VCS, Version Control Systems) son sistemas pensados para ayudarnos a organizar trabajocolaborativode desarrollo de software.

Es decir:

Nosirven comobackupdel escritorio.

Nosirven para almacenar las fotos de las vacaciones.

Nose aprovechan todas sus caracter´ısticas si se usan para guardar trabajos hechos en Word.

S´ısirven para ayudarnos a programar mejor y m´as eficientemente.

S´ısirven para encontrar errores m´as r´apido.

S´ısirven para forzarnos una manera de trabajo m´as ordenada.

Nohacen magia.

Es inviable trabajar en grupos de desarrollo de m´as de 5 personas sin herramientas de estas caracter´ısticas.

(6)

VCS

Caracter´ısticas de los VCS

Almacenan todas las distintasrevisiones(versiones) de la historia de cada archivo con el que trabajemos.

Nos permiten saltar entre revisiones y ver las diferencias entre las mismas. Cada revisi´on debe ser creada de manera expl´ıcita, incluyendo un mensaje que indica qu´e cambios hubo.

Existen centralizados y distribuidos:

Centralizados: todos los cambios se guardan en un ´unico servidor central, los usuarios siempre buscan ah´ı.

Distribuidos: cada usuario trabaja independientemente de los dem´as en su propia computadora, pero tambi´en puede compartir sus modificaciones con el resto.

(7)

git

git

VCS distribuido desarrollado por Linus Torvalds en 2005.

Actualmente utilizado para almacenar los cambios que se realizan en el c´odigo fuente de Linux (y al menos una decena de millones de proyectos de software m´asa).

Linux (versi´on 3.19.0) tiene m´as de 900.000 l´ıneas de c´odigo fuente en C (alrededor de 30.000.000 de caracteres).

Cada vez m´as utilizado en la academia.

ahttps://github.com/blog/1724-10-million-repositories

(8)

git

Terminolog´ıa de git

Repositorio Lugar en donde se encuentran los archivos que forman parte de un proyecto, junto con toda la informaci´on adicional que debe almacenarse para que funcione el control de versiones.

Revisi´on Foto del estado de un repositorio en un momento dado.

Historia Conjunto de revisiones ordenadas cronol´ogicamente.

commit Acci´on de generar una nueva revisi´on a partir de cambios en un conjunto de archivos del repositorio; se incluye un mensaje para describir estos cambios.

clone Acci´on de copiar un repositorio que se encuentra en otra computadora, junto con toda la historia del mismo.

push Acci´on de compartir los commits hechos en mi copia local del repositorio con otro usuario o servidor remoto.

pull Acci´on de actualizar mi copia local de un repositorio para que se incluyan todos los cambios que pushearon uno o m´as usuarios.

merge Acci´on de juntar cambios hechos en mi copia local con cambios de otros usuarios sobre un mismo conjunto de archivos.

(9)

git

Terminolog´ıa de git (branches)

branch Bifurcaci´on de la historia de un repositorio.

master Branch principal (siempre existe).

HEAD Revisi´on m´as actual del branch en el que nos encontramos.

origin Servidor al que le va a enviar los cambios cuando se haga un push.

Fuente:https://onlywei.github.io/explain-git-with-d3

(10)

git

Trabajando con git

Ejemplo 1: nuevo repositorio, ´unico usuario.

1 mkdir mirepo 2 cd mirepo 3 git init

4 git add pruebita1.txt 5 git commit

6 git add pruebita2.txt 7 git commit

8 git checkout HEAD~1

Ejemplo 2: volviendo atr´as cambios en un archivo.

1 git add 2 git commit 3 git add 4 git commit

5 git reset HEAD~1(¡ojo! si ya hicieron un push del commit anterior, hacer

(11)

git

Trabajando con git

Ejemplo 3: nuevo repositorio, m´ultiples usuarios.

1 Crear repositorio en Bitbucket. 2 Seguir instrucciones en la p´agina. 3 git add

4 git commit 5 git push

(12)

Bitbucket

Bitbucket

Existen varios servicios gratuitos que ofrecenhostingde repositorios git. Nos ofrecen una interfaz web c´omoda para crear repositorios, manejar qu´e usuarios tienen acceso a ´el, ver qu´e archivos contienen, diferencias entre distintas revisiones, etc.

El m´as conocido es GitHub, pero la cuenta gratuita solamente permite repositorios p´ublicos.

(13)

Bitbucket

Creando un nuevo repositorio

Una vez que entramos desde el navegador ahttp://bitbucket.orgy nos registramos con nuestra direcci´on de mail, tenemos que crear un nuevo repositorio:

(14)

Bitbucket

Inicializando el repositorio

(15)

Bitbucket

Agregando a nuestro compa˜

nero de grupo

Para que otra persona pueda acceder al repositorio tenemos que darle acceso:

(16)

Bitbucket

Ejercicio

1 Registrarse en la p´agina de Bitbucket.

2 Crear un nuevo repositorio con el nombrepruebita.

3 Inicializar el repositorio y agregarle y commitear un archivo de texto llamado

archivo1.txtcon el siguiente contenido:

Introduccion a la Computacion 2015 Estamos probando Bitbucket!

4 Pushear el commit anterior. 5 Borrar el repositorio.

6 Volver a traer una copia del repositorio usando el comandogit clone. 7 Modificar el archivoarchivo1.txtpara que diga lo siguiente:

Introduccion a la Computacion 1er cuatrimestre 2015 Estamos probando Bitbucket!

8 Commitear y pushear el cambio.

9 Borrar el repositorio y clonarlo nuevamente.

Referencias

Documento similar

Para ello, trabajaremos con una colección de cartas redactadas desde allí, impresa en Évora en 1598 y otros documentos jesuitas: el Sumario de las cosas de Japón (1583),

dente: algunas decían que doña Leonor, "con muy grand rescelo e miedo que avía del rey don Pedro que nueva- mente regnaba, e de la reyna doña María, su madre del dicho rey,

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

Después de una descripción muy rápida de la optimización así como los problemas en los sistemas de fabricación, se presenta la integración de dos herramientas existentes

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la

 Para recibir todos los números de referencia en un solo correo electrónico, es necesario que las solicitudes estén cumplimentadas y sean todos los datos válidos, incluido el

Las manifestaciones musicales y su organización institucional a lo largo de los siglos XVI al XVIII son aspectos poco conocidos de la cultura alicantina. Analizar el alcance y

Durante toda su disertación, el ponente asigna una gran importan- cia al tema de las relaciones triangulares entre China, Estados Unidos y Latinoamérica, pues es algo, dice, que