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



Documentos relacionados
TUTORIAL PRÁTICO SOBRE Git. Versão 1.1

Manual de Utilização do Tortoise SVN. Fábrica de Software. Algar Tecnologia Unidade BH

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

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

PROJETO CEMEA. Um trabalho educacional

Desenvolvendo Websites com PHP

Controle de Versão com GIT

Sistema de Controle de Versão - CVS

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

Tutorial de uso do Subversion com RapidSVN

Controle de Versão com CVS

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

O primeiro passo é habilitar acesso externo através de web service a configuração é bem simples e não exige maiores explicações.

SAIBA MAIS SOBRE O LINUX E DESCUBRA QUAL DISTRIBUIÇÃO É MELHOR PARA VOCÊ! CURSO

Agenda. Gerência de Configuração de Software. Atividade Sala. Quais os problemas? P1) Duplicidade de Trabalho. P2) Trabalhos Sobrepostos

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Julio Cezar Fialho Freire de Carvalho 1, Aline Maria Malachini Miotto Amaral 2 1 INTRODUÇÃO

Lazarus pelo SVN Linux/Windows

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

Para funcionamento do Netz, alguns programas devem ser instalados e alguns procedimentos devem ser seguidos. São eles:

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

UNIVERSIDADE FEDERAL DE GOIÁS CERCOMP (CENTRO DE RECURSOS COMPUTACIONAIS) TUTORIAL DE USO DO WEBMAIL - UFG

Gestão de Desenvolvimento de Sistemas por Controle de Versão Utilizando SVN. Software para Controle de Versão SVN/Subversion

Manual de Utilização do PLONE (Gerenciador de página pessoal)

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

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

FACULDADE SENAC-RS PELOTAS RODRIGO ALMEIDA PEREIRA. Sistemas de Informação

2. Instalação em um computador autônomo

Manual de backup do banco de dados PostgreSQL - Versão 2. Setembro-2011

Introdução a Banco de Dados

CODE IGNITER INSTALAÇÃO & BANCO DE DADOS

Utilizando subversion como controle de versão

Instalando o Internet Information Services no Windows XP

Manual do Contribuidor. Portal de Internet. Projeto: Novo Portal de internet

Sistemas de Controle de Versão ~Subversion~ Juliano Ferraz Ravasi UNESP Rio Claro

Como configurar s nos celulares. Ebook. Como configurar s no seu celular. W3alpha - Desenvolvimento e hospedagem na internet

Tutorial - Monitorando a Temperatura de Servidores Windows

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

Considerações sobre o Disaster Recovery

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

Manual de Administração DPS Printer 2.1 NDDigital S/A - Software

Fox Gerenciador de Sistemas

Manual de operação. BS Ponto Versão 5.1

Sistemas Operacionais

Manual de Instalação ( Client / Server ) Versão 1.0

AS VERSÕES DESCRIÇÃO DAS FUNÇÕES

Manual da Administração do site Abrasel 2.0

Menus Personalizados

Como Utilizar o Escritório Virtual

ISO/IEC 12207: Gerência de Configuração

Tutorial para cadastro de serviço

29/06/ :30 Leite Júnior QUESTÕES CESPE BACKUP

Perguntas frequentes do Samsung Drive Manager

Laboratório de Engenharia de Software. Tutorial TortoiseSVN

Manual AGENDA DE BACKUP

Dicas para usar melhor o Word 2007

SAD Gestor Gerenciador de Backup

Procedimentos para Instalação do Sisloc

Procedimentos para Reinstalação do Sisloc

Introdução aos Sistemas da InformaçãoAula 4 p. 1

MANUAL DE CONFIGURAÇÃO DO BACKUP

SISTEMAS OPERACIONAIS LIVRES. Professor Carlos Muniz

Online Help StruxureWare Data Center Expert

MANUAL DE FTP. Instalando, Configurando e Utilizando FTP

Tutorial para envio de comunicados e SMS

No Fedora, instalamos os pacotes "mysql" e "mysql-server", usando o yum:

MANUAL DE UTILIZAÇÃO SISTEMA DE CADASTRO INTRANET

Desenvolvendo Websites com PHP

MANUAL DE INSTALAÇÃO E CONFIGURAÇÃO. Motor Periférico Versão 8.0

O sistema está pedindo que eu faça meu login novamente e diz que minha sessão expirou. O que isso significa?

Backup dos Bancos de Dados Interbase

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO

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

Sistema de Chamados Protega

Serviço Seguro de Mensagens Instantâneas

Informática - Prof. Frank Mattos

Configurando um Grupo Doméstico e Compartilhando arquivos no Windows 7

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 04. Prof. André Lucio

Programação para Android. Aula 07: Persistência de dados Shared Preferences, Internal e External Storage

Manual Replicação Manual VPN

Manual AGENDA DE BACKUP

Portal do Senac: Área Exclusiva para Alunos Manual de Navegação e Operação

Gerenciamento de software como ativo de automação industrial

AULA 06 CRIAÇÃO DE USUÁRIOS

CERTIFICADO DIGITAL ARMAZENADO NO COMPUTADOR (A1) Manual do Usuário

CAPÍTULO 35 Como utilizar os componentes ColdFusion

Manual de Instalação e Utilização

IMPEDIR QUE TODOS BLOGS E SITES PUXEM FOTOS, IMAGENS E GIFS

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

OneDrive: saiba como usar a nuvem da Microsoft

Trecho retirando do Manual do esocial Versão 1.1

Manual das funcionalidades Webmail AASP

Entendendo como funciona o NAT

AULA 3 FERRAMENTAS E APLICATIVOS DE NAVEGAÇÃO, DE CORREIO ELETRÔNICO, DE GRUPOS DE DISCUSSÃO, DE BUSCA E PESQUISA (PARTE II)

Memeo Instant Backup Guia de Referência Rápida

Manual Comunica S_Line

Transcrição:

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

Por quê? Facilidades de utilizar um sistema de versionamento de código.

Várias versões Quando se salva uma nova versão de um arquivo, a versão anterior é sobrescrita. É possível criar um novo arquivo para cada versão mas isso ocupa muito espaço. Um sistema de versionamento possibilita gravar todas as alterações feitas a um arquivo. Não ocupa o mesmo espaço que criar uma nova cópia do arquivo. Quanto maior o histórico, maior o tamanho do repositório. O tamanho da cópia local não muda com o histórico.

Várias versões A possibilidade de se acessar diversas versões permite: Voltar a uma versão anterior caso uma mudança se mostre errada. Descartar mudanças. Verificar mudanças feitas a um arquivo. Descobrir quem escreveu o código de cada linha de um arquivo.

Junção de versões Quando se realiza o desenvolvimento em grupo, é comum que mais de um desenvolvedor faça modificações a um mesmo arquivo. É preciso juntar as modificações de ambos em uma versão única. Os sistemas de versionamento fazem a junção de diferentes versões automaticamente.

Acesso É possível baixar uma cópia do código de qualquer local com acesso ao repositório. É possível controlar o nível de acesso às pastas. Cada usuário pode usar uma senha e nome de usuário para registrar suas mudanças.

Subversion Sobre o Subversion

Breve histórico O Subversion (também conhecido como SVN) foi desenvolvido como uma alternativa ao CVS, buscando melhorar alguns aspectos do mesmo. O projeto é open source, foi iniciado em 2000 e está em desenvolvimento. Roda em diversos sistemas operacionais (Windows, Linux, OS X). Possui diversos clientes com interface gráfica, entre eles o TortoiseSVN. Atualmente a versão estável é a 1.6.1 de 10/04/2009.

Funcionalidades Commits são atômicos Rastreamento de junções Consegue lidar com arquivos binários Servidor standalone próprio (svnserve) Design pensado para uso humano ou automatizado Diversos plug-ins para várias linguagens Integração com Apache Diversos clientes Faz quase tudo que o CVS fazia.

Operações Básicas Funcionalidades básicas necessárias para se utilizar o SVN.

Checkout Os arquivos são salvos em um servidor, no repositório. Para que se possa trabalhar nos arquivos é preciso criar uma cópia dos arquivos na máquina. Essa operação é chamada de checkout.

Checkout

Checkout Schema file:/// http:// https:// svn:// svn+ssh:// Access Method direct repository access (on local disk) access via WebDAV protocol to Subversion-aware Apache server same as http://, but with SSL encryption. access via custom protocol to an svnserve server same as svn://, but through an SSH tunnel.

Update Para trazer do repositório as mudanças realizadas é preciso fazer uma atualização ou update. Ao realizar um update, o SVN fará uma junção dos arquivos da cópia local com os arquivos no repositório. Conflicts: Se houver uma modificação feita na cópia local em uma linha que seria modificada ocorre um conflito ou conflict. Um conflito deve ser resolvido manualmente. O TortoiseSVN possui uma ferramenta gráfica para realizar esta tarefa. Não é possível dar commit com arquivos em conflito.

Update É possível dar um update até uma determinada versão. O update mantém a profundidade do checkout.

Update

Commit Após fazer modificações a um arquivo, é preciso enviar estas modificações para o repositório. A operação que realiza esta tarefa é o commit. É recomendável que o commit seja feito na pasta principal, e não arquivo a arquivo. Evita esquecer de dar commit. Evita esquecer de adicionar arquivos criados recentemente. O commit falha se houver uma versão mais nova do arquivo no repositório. Nesse caso deve-se realizar um update antes do commit.

Commit Deve-se colocar um comentário quando se dá o commit explicando o que foi feito. Os comentários devem ser suficientemente claros e descritivos para que se possa voltar a uma versão anterior se necessário. O tamanho do repositório não muda com o número de commits mas sim com o número de mudanças, então dêem bastante commits. O repositório evita perda de dados. O que está na cópia local não pode ser recuperado se houver um problema com o computador.

Ignorando arquivos É possível ignorar arquivos para que os mesmos não sejam comitados nem apareçam na lista de arquivos passíveis de commit. A exclusão pode ser feita por pasta, por arquivo ou por tipo de arquivo (extensão).

Ignorando arquivos

Revert, Diff, Delete e Lock Revert permite descartar mudanças realizadas na cópia local, recuperando a mesma versão do repositório. Diff permite comparar o arquivo da cópia local com qualquer outra versão. Delete apaga um arquivo do repositório. Quando os demais fizerem um update o arquivo será removido. Simplesmente apagar o arquivo não faz isso. Lock permite travar o arquivo para que nenhum outro usuário modifique o arquivo (útil quando o arquivo não é passível de junção).

Menu Extendido

Branches O que são e como usar

Alice e Bob Alice e Bob trabalham em um mesmo projeto e seu código é versionado no SVN. Bob precisa fazer uma grande modificação no programa, que vai alterar todos os arquivos. Enquanto ele faz essa modificação, Alice precisa continuar trabalhando em outras partes do projeto.

Opção 1 Bob pode, em seu computador, desenvolver a mudança. Quando terminar a mudança, ele faz um grande commit. Problemas: O código do Bob não será versionado. Quanto mais tempo bob fica sem dar commit, mais difícil ficará juntar o código depois. Bob não poderá aproveitar as melhorias feitas por Alice.

Opção 2 Faça como uma árvore Crie um branch!

O que é um branch?

Desenvolvimento com branches Ao criar um branch, Bob pode desenvolver as novas funcionalidades. Enquanto Bob desenvolve, ele pode periodicamente fazer um merge do trunk para o seu branch e pegar as melhorias feitas por Alice. Quando Bob termina, ele faz um merge de seu branch com o trunk, passando as suas melhorias para o trunk.

Switch O comando Switch permite mudar a sua cópia local para que aponte para outro branch, tag ou o trunk. É idêntico a um checkout mas mais rápido.

Tags O que são e para que servem

Tags Tags são basicamente o mesmo que branches. A diferença e puramente conceitual. Um branch é criado para ser modificado para adicionar ou corrigir algo no código. Um tag é simplesmente uma representação mais simples de se lembrar, para humanos, de uma determinada versão do código. Por exemplo, se a revisão 709 do projeto SimMEMS é a versão 2.5.3 do programa que foi disponibilizada, pode-se criar um tag com o nome SimMEMS 2_5_3 a partir da revisão 709 para tornar mais fácil recuperar essa versão.

Tags Do ponto de vista do SVN, tags e branches são iguais. É possível modificar o código de uma tag e dar commit. Isso não deve ser feito, e em geral cabe aos programadores não o fazer.

Layout Padrão Como branches, tags e o trunk são armazenadas

Padrão recomendado Para se armazenar branches tags e o trunk usa-se três pastas. É recomendável fazer o checkout do trunk ou do branch que se vai utilizar e não do projeto inteiro. /trunk /branches /tags

Padrão recomendado Se existe mais de um projeto, a estrutura é repetida para cada projeto. /Projeto 1/trunk /Projeto 1/tags /Projeto 1/branches /Projeto 2/trunk /Projeto 2/tags /Projeto 2/branches

Exemplo SimMEMScpp trunk tags SimMEMScpp 2_5_3 SimMEMScpp 2_5_2 branches Branch 1 Branch 2

Referências Sites úteis

Referências Usando o SVN http://svnbook.red-bean.com/ Código fonte e binários do SVN http://subversion.tigris. Código fonte e binários do TortoiseSVN http://tortoisesvn.tigris.org/ Software para conversão de repositórios CVS2SVN http://cvs2svn.tigris.org/