Uma Introdução aos Sistemas de Controle de Versão Distribuídos. Leonardo Gresta Paulino Murta

Documentos relacionados
Git. Leonardo Gresta Paulino Murta

Desenvolvimento de so-ware com Git. Leonardo Gresta Paulino Murta

Git. Bruno de Pinho Sche.no

Controlo de versões com GIT

Controle de Versão com GIT

Salvando modificações localmente (commit) Enviando modificações para o servidor (push) Sinalizando versão estável (tag)

Gerência de Configuração. Leonardo Gresta Paulino Murta

José cria um repositório vazio no Bitbucket ( José cria no seu computador de desenvolvimento um repositório local

Controle de Versão. Prof. Msc. Bruno Urbano Rodrigues.

Padrões de configuração GIT

git git Utilização básica no controle de versão de pacotes João Eriberto Mota Filho Utilização básica no controle de versão de pacotes

Introdução ao Git. Laboratório de Programação. Pedro Vasconcelos, Manuel Barbosa, DCC/FCUP. Fevereiro 2016

Git e contribuição para projetos Open Source. Bruno Orlandi

Objetivo. Introdução; História; Conceito; SVN; Instalação; Prática através de exercícios.

Curso de git. Aula de outubro de 2018

Introdução ao Git. Author: Eduardo R. D Avila Date: Tue Mar 26 19:00:

TUTORIAL GIT Victor Breder Comp-19 Março de 2017

DESBRAVANDO O GIT E O GITHUB

Exemplos e comandos úteis de git

GIT Controlo de versões

Git e Pais

Controle de versão utilizando Git André G. C. Pacheco Janeiro de 2018

Gerência de Configuração: Terminologia. Leonardo Gresta Paulino Murta

Controle de Versões com o Git

TUTORIAL PRÁTICO SOBRE Git. Versão 1.1

Iniciando Git e GitHub. Univali, 2017 Benjamin Mezger

Repositórios 2. Sistemas de controle de versionamento. Allan C. Trevisan PET-COCE

Gerência de Configuração. Leonardo Gresta Paulino Murta

GIT. Prof. Rafael Sandim

Introdução ao Git. Introdução ao GIT. Anderson Moreira. Baseado nos slides disponíveis em http//free electrons.com

Entre os VCS s, podemos sitar o Mercurial, Subversion, CVS, Git dentre outros. E é do Git que vamos falar hoje.

Agenda. Aprendendo Git/GitHub. Definições. Git. História 31/05/2012. Vantagem de usar controle de versão

Universidade Federal de Santa Maria Centro de Tecnologia Programa de Educação Tutorial - Sistemas de Informação TUTORIAL

Controle de versão e fluxo de trabalho em projetos de desenvolvimento de software

Introdução ao Controle de Versões. Leonardo Murta

Gerência de Configuração: Terminologia. Leonardo Gresta Paulino Murta

Gerência de Configuração de Software Funções

Sistemas de Controlo de Versões

Introdução ao Git. Laboratório de Programação. Luísa Lima, Pedro Vasconcelos, DCC/FCUP. Março 2015

Instituto Federal da Bahia Análise e Desenvolvimento de Sistemas INF022 Tópicos Avançados Software Configuration Management

J820. Integração Contínua. com CVS, CruiseControl, Cruise Control. argonavis.com.br. AntHill Gump e Helder da Rocha (helder@acm.

2. GERÊNCIA DE CONFIGURAÇÃO DE SOTWARE

Primeiros passos com no trabalho com Git

Gerência de Projetos e Manutenção de Software Aula 10 Gerência de Configuração e Mudanças Andréa Magalhães Magdaleno 2017.

Tutorial SVN Básico Engenharia de Software. Denise Notini Nogueira

Ruby on Rails Avançado

Introdução à Engenharia ENG1000

Versionamento de Código. Núcleo de Desenvolvimento de Software

Customização ao Extremo

Git no Controle. Com softwares de controle de

Gerenciamento distribuído

Introdução à Gerência de Configuração. Leonardo Gresta Paulino Murta

Sistema de Controle de Versão - CVS

TUTORIAL DE USO DO GIT JUNTO AO ECLIPSE

Um sistema de controle de versão tem a finalidade de gerenciar diferentes versões de um artefato.

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS APLICATIVOS HÍBRIDOS. Prof. Angelo Augusto Frozza, M.Sc.

Guia Prático Richard E. Silverman

Gerência de Projetos e Manutenção de Software Aula 9 Gerência de Configuração e Mudanças Andréa Magalhães Magdaleno 2017.

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - APLICATIVOS HÍBRIDOS. Prof. Angelo Augusto Frozza, M.Sc.

CVS Concurrent Versions System

UNIVERSIDADE FEDERAL DO PARANÁ - UFPR Bacharelado em Ciência da Computação

Sistemas de Controle de Versão

Controle de Versão com CVS

Daves Marcio Silva Martins Mestre em Computação de Alto Desempenho - UFRJ.

Mini Curso Gerenciamento de Configuração e Mudança com GIT + Eclipse. Jadson Santos Amador Pahim

Integrated Government Resources Planning IGRP Open Source. Como importar e contribuir - GitHub. Núcleo Operacional da Sociedade de Informação

Gerência de Configuração: Ramificação e Integração. Leonardo Gresta Paulino Murta

Controle de Versão de Software. Luiz Jácome Júnior

Apresentação do Curso de Laboratório de Gerência de Configuração

Scanned by CamScanner

PySIGEP Documentation

Redes de Computadores e Aplicações Camada de aplicação IGOR ALVES

Introdução à Gerência de Configuração. Leonardo Gresta Paulino Murta

Instituto Federal da Bahia Análise e Desenvolvimento de Sistemas INF022 Tópicos Avançados Gerencia de Configuração

Universidade Estadual de Campinas. CVS - Concurrent Version System

Utilização de Branches de Erro e Melhoria Sistema de Gestão da Qualidade

Kernel Linux. O que é e como ajudar no seu desenvolvimento

DevOps na Zendesk DEVOPS LEAD SENIOR DEVELOPER OPERATIONS ENGINEER

Elgg - Participatório. Departamento de Informática Universidade Federal do Paraná (UFPR) Curitiba PR c3participa@c3sl.ufpr.br

ENGENHARIA DE SOFTWARE Controlo de versões com git

Git Funcionamento e Workflow. Pesquisa e Desenvolvimento Tecnológico

Apresentação do Curso de Laboratório de Gerência de Configuração

Redes de Computadores

Gerência de Configuração. Professor: Dr. Eduardo Santana de Almeida Universidade Federal da Bahia

Guia - SimEON (Simulator for Elastic Optical Networks ) William Silva dos Santos Observações:

Gerência de Projetos e Manutenção de Software Aula 10 Gerência de Configuração e Mudanças + Reutilização Andréa Magalhães Magdaleno

Engenharia de Software. Prof. Raquel Silveira

Apresentação do Curso de Laboratório de Gerência de Configuração

Sistema P2P com Timestamping para Sincronização de Diretórios

Tutorial Django e SVN na IDE Pycharm

Tutorial de Metalsmith. Paulo Jerônimo :47:59 BRT

1. Abra o terminal e instale o Git, para que assim você possa obter o código fonte do programa e suas atualizações.

INTRODUÇÃO À INTEGRAÇÃO CONTÍNUA. Jadson Santos Software Engineer Informatic Superintendence (SINFO) - UFRN

Esse é um post para mostrar os comandos básicos para administrar containers em docker.

Guia itexto. Usando Git. Essencial. Henrique Lobo Weissmann

Transcrição:

Uma Introdução aos Sistemas de Controle de Versão Distribuídos Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Versionamento Agenda Sistemas de Controle de Versão Formas de adoção de Sistemas de Controle de Versão Distribuídos Passo a passo Ferramentas de apoio 2

Problema #1 Como vocês desenvolvem sohware? 3

MoKvação Big Bang OU Processo Incremental (Versões) 4

Mas afinal, o que são versões? Versão Revisão Variante Cooperação (Rascunho) (Conradi and Westfechtel 1998) 5

Revisões Gerações do imac (1998 2013) 6

Variantes Honda Civic Hatchback Sedan Coupe 7

Cooperação (versões rascunho) Versão base Espaço de trabalho do Pedro Espaço de trabalho da Maria Espaço de trabalho do João 8

Versões de rascunho podem ser combinadas (operação de merge) João Maria Pedro Revisões 9

Conflitos podem ocorrer durante o merge João Paulo Revisões 10

2- way merge? 11

3- way merge 12

Outras duas operações importantes Diff = Patch = para guardar, transferir e compreender versões. 13

Versões no mundo real Infinidade de revisões e variantes juntas (sem contar versões rascunho) Histórico do Linux 14

Mas afinal, para que servem versões? Sincronizar equipes Reproduzir estados anteriores do código Explorar possibilidades Segregar desenvolvedores Customizar produtos (LPS) Rastrear a introdução de bugs (bisect) Entender a evolução de sohware (MSR) Auditar mudanças (annotate) Etc. 15

Problema #2 Como viabilizar o trabalho em equipe? 16

Possíveis soluções 17

Problema/solução Como viabilizar o versionamento? Como viabilizar o trabalho em equipe? Sistemas de Controle de Versão 18

Histórico Anos 70/80 Sistemas locais SCCS (1972) RCS (1982) 19

Histórico Anos 70/80 Sistemas locais SCCS (1972) RCS (1982) checkout Espaço de Trabalho Repositório commit 20

Histórico Anos 80/90 Sistemas cliente- servidor CVS (1986) Subversion (2000) 21

Histórico Anos 80/90 Sistemas cliente- servidor CVS (1986) Subversion (2000) cliente check-out / update servidor Espaço de Trabalho commit Repositório 22

Histórico Anos 2000 Sistemas peer- to- peer Git (2005) Mercurial (2005) 23

Histórico Anos 2000 Sistemas peer- to- peer Git (2005) Mercurial (2005) check-out clone / pull Espaço de Trabalho Repositório Repositório... commit push 24

O que é versionado? Elemento FS Diretório Arquivo Arquivo Binário Arquivo Texto Linha 25

Como é versionado? Commit Autor Comminer Mensagem Data pais 0..2 * Elemento FS Commit C Commit D Commit A Commit B Commit F Commit E 26

Formas de adoção Apesar de ser peer- to- peer, normalmente é definido um workflow para adoção de DVCS em função de caracterískcas do projeto Individual Cliente- servidor Gerente de integração Ditador/tenentes 27

Individual 28

Cliente- servidor 29

Gerente de integração 30

Ditador/tenentes 31

Passo a passo Vamos uklizar o Git gradualmente em diferentes situações Conceitos básicos Repositório local Inspecionando mudanças Demarcando versões especiais Repositório local com ramos Repositório remoto MúlKplos repositórios remotos 32

git help Conceitos básicos: help! Oferece ajuda geral sobre o git git help <comando> Oferece ajuda sobre um comando específico do git Demais comandos dão dicas do que pode ser feito (leia com atenção as saídas dos comandos!) 33

Conceitos básicos: quem sou eu? git config - - global user.name <seu nome> Configura o nome do usuário git config - - global user.email <seu email> Configura o email do usuário 34

Conceitos básicos: staging area Área onde são colocados os arquivos que pretendemos enviar para o repositório Área de Trabalho Staging Area Repositório Local 35

Conceitos básicos: commit id Cada sistema de controle de versão usa uma estratégia diferente para idenkficar commits Número sequencial por arquivo (CVS) Número sequencial por repositório (Subversion) Hash (Git e Mercurial) 36

Conceitos básicos: apelidos A versão base do seu espaço de trabalho HEAD O ramo principal do seu repositório master O repositório do qual seu repositório foi clonado origin 37

git init <nome> Repositório local Cria um repositório Git no diretório git add Adiciona um arquivo na staging area para ser enviado ao repositório no próximo commit git commit m <mensagem> Envia os arquivos que estão na staging area para o repositório 38

Inspecionando mudanças git status Inspeciona o espaço de trabalho git log [- - graph] [- - decorate=short] [- - name- status] Inspeciona o histórico do repositório local git show Inspeciona um commit git diff Compara o espaço de trabalho com a staging area ou com alguma versão do repositório 39

Interface gráfica É possível fazer todos esses passos de forma visual Dentre várias ferramentas, vamos prakcar com... 40

git tag Demarcando versões especiais Lista os rótulos existentes git tag <nome do rótulo> [commit id] Cria um rótulo sobre um dado commit (HEAD por default) git tag d <nome do rótulo> Remove um rótulo 41

Repositório local com ramos git branch - - all - v Lista os ramos existentes no repositório git branch <nome do ramo> Cria um ramo à parkr da versão indicada no HEAD git branch d <nome do ramo> Remove um ramo git checkout <commit id ou nome do ramo> Troca a versão base do espaço de trabalho git merge <nome do ramo> Combina um ramo com o ramo corrente 42

Repositório remoto git clone <url> <diretório> Cria um repositório local copiando o histórico de um repositório remoto git pull Atualiza o repositório local e o espaço de trabalho em relação a um repositório remoto git push Atualiza o repositório remoto em relação ao repositório local 43

MúlKplos repositórios remotos git remote - v Listar os repositórios remotos cadastrados git remote add <nome> <url> Adiciona um novo repositório remoto git remote remove <nome> Remove um repositório remoto existente 44

Serviço de hospedagem Há diversos serviços de hospedagem de repositórios Git na Internet Dentre eles, vamos prakcar com... 45

Principais referências bibliográficas Conradi, R. and Wesechtel, B. Version Models for SoHware ConfiguraKon Management. ACM CompuKng Surveys, v.30, n.2, p. 232-282, 1998. Chacon, S. Pro Git. Apress, 1ª edição, 2009. 46

Uma Introdução aos Sistemas de Controle de Versão Distribuídos Leonardo Gresta Paulino Murta leomurta@ic.uff.br