desenvolvimento organizado com vcs

86
BOM DIA!

Upload: yogarine

Post on 18-Jan-2017

1.404 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Desenvolvimento organizado com VCS

BOM DIA!

Page 2: Desenvolvimento organizado com VCS

meu nome:Alwin “Yogarine” Garside

Page 3: Desenvolvimento organizado com VCS

ALVENIR

Page 4: Desenvolvimento organizado com VCS

ALVES

Page 5: Desenvolvimento organizado com VCS
Page 6: Desenvolvimento organizado com VCS

ALWIN

Page 7: Desenvolvimento organizado com VCS

WhoAmI? Desenvolvedor PHP há 4 anos 3 anos de experiência com Subversion 1 ano de experiência com Bazaar SysAdmin/Developer na UEPB (2006-2008) Developer na Itline/CESED (2008-2009)

Page 8: Desenvolvimento organizado com VCS

O que vou falar tanto? O que é VCS? Porquê VCS? Centralizado vs Distribuído Comandos básicos de VCS Introdução a svn, bzr e git

Page 9: Desenvolvimento organizado com VCS

MONOTONE

VCSBZR

GIT

SVNCVS

MERCURIAL

GNU ARCH

SVK

Desenvolvimento organizadocom

Page 10: Desenvolvimento organizado com VCS

WTF = VCS!?

Page 11: Desenvolvimento organizado com VCS
Page 12: Desenvolvimento organizado com VCS

Visual C#(ufa...)

Page 13: Desenvolvimento organizado com VCS

VERSION CONTROL SYSTEM

Page 14: Desenvolvimento organizado com VCS

SISTEMA DE CONTROLE DE VERSÃO

Page 15: Desenvolvimento organizado com VCS

HUH?

Page 16: Desenvolvimento organizado com VCS

PROJETOS SEM VCS:

Page 17: Desenvolvimento organizado com VCS

Pasta por data?

Page 18: Desenvolvimento organizado com VCS

Pasta por versão?

Page 19: Desenvolvimento organizado com VCS

VCS AJUDA A... ...MANTER UM CHANGELOG

Page 20: Desenvolvimento organizado com VCS

CHANGELOG?

Page 21: Desenvolvimento organizado com VCS

CHANGELOG =LOG DE MUDANÇAS

Page 22: Desenvolvimento organizado com VCS
Page 23: Desenvolvimento organizado com VCS

...voltando, VCS AJUDA A... ...MANTER UM CHANGELOG ...VISUALIZAR E APLICAR DIFF'S

Page 24: Desenvolvimento organizado com VCS

DIFF'S?

Page 25: Desenvolvimento organizado com VCS

DIFF = DIFERENÇA

Page 26: Desenvolvimento organizado com VCS

DIFF UNIFICADA:

Page 27: Desenvolvimento organizado com VCS

DIFF LADO-AO-LADO:

Page 28: Desenvolvimento organizado com VCS

...voltando, VCS AJUDA A... ...MANTER UM CHANGELOG ...VISUALIZAR E APLICAR DIFF'S ...TRABALHAR COM MULTIPLAS BRANCHES

Page 29: Desenvolvimento organizado com VCS

BRANCHES?

Page 30: Desenvolvimento organizado com VCS

BRANCH = GALHO

Page 31: Desenvolvimento organizado com VCS

GALHOS:

Page 32: Desenvolvimento organizado com VCS

PROJETO = ÁRVORE(TREE)

Page 33: Desenvolvimento organizado com VCS

TRONCO

(TRUNK)

Page 34: Desenvolvimento organizado com VCS

TREE => TRUNK => BRANCHES

Page 35: Desenvolvimento organizado com VCS

0.1 0.2 0.3

Feature A Feature B Feature C Feature D Feature E

TRUNK

SERIES BRANCHES:

FEATURE BRANCHES:

PROJECT TREE:

Page 36: Desenvolvimento organizado com VCS

BRANCHES!

Page 37: Desenvolvimento organizado com VCS

...voltando, VCS AJUDA A... ...MANTER UM CHANGELOG ...VISUALIZAR E APLICAR DIFF'S ...TRABALHAR COM MULTIPLAS BRANCHES ...FAZER UM MERGE ENTRE 2 BRANCHES

Page 38: Desenvolvimento organizado com VCS

MERGE?

Page 39: Desenvolvimento organizado com VCS

MERGE = JUNÇÃO

Page 40: Desenvolvimento organizado com VCS

0.1 0.2 0.3

Feature A Feature B Feature C Feature D Feature E

TRUNK

SERIES BRANCHES

FEATURE BRANCHES

Page 41: Desenvolvimento organizado com VCS

0.1 0.2 0.3

Feature A Feature B Feature C Feature D Feature E

TRUNK

MERGE

Page 42: Desenvolvimento organizado com VCS

...emfim, VCS AJUDA A... ...MANTER UM CHANGELOG ...VISUALIZAR E APLICAR DIFF'S ...TRABALHAR COM MULTIPLAS BRANCHES ...FAZER MERGES ENTRE BRANCHES ...MUITO, MUITO MAIS!

Page 43: Desenvolvimento organizado com VCS

CENTRALIZADOVS.

DISTRIBUÍDO

Page 44: Desenvolvimento organizado com VCS

VCS CENTRALIZADO REPOSITÓRIO CENTRALIZADO COMPLICA CRIAÇÃO DE “FEATURE

BRANCHES” COLABORADORES MANDAM PATCHES

(DIFF'S) PARA OS MANTENEDORES OS DESENVOLVEDORES TRABALHAM COM

UM WORKING COPY

Page 45: Desenvolvimento organizado com VCS

WORKING COPY?

Page 46: Desenvolvimento organizado com VCS

WORKING COPY =CÓPIA DE TRABALHO

Page 47: Desenvolvimento organizado com VCS

WORKING COPY

REPOSITÓRIO

WORKINGCOPY

SERVIDOR

REVISÂO 123

PEER

Page 48: Desenvolvimento organizado com VCS

WORKING COPY!

Page 49: Desenvolvimento organizado com VCS

...anyway, VCS CENTRALIZADO: REPOSITÓRIO CENTRALIZADO COMPLICA CRIAÇÃO DE “FEATURE

BRANCHES” COLABORADORES MANDAM PATCHES

(DIFF'S) PARA OS MANTENEDORES OS DESENVOLVEDORES TRABALHAM COM

UM WORKING COPY

Page 50: Desenvolvimento organizado com VCS

VCS CENTRALIZADO

REPOSITÓRIOPEER

PEER

MANTENEDOR

PEER

PEER

SERVIDOR

Page 51: Desenvolvimento organizado com VCS

VCS DISTRIBUIDO: REPOSITÓRIO DISTRIBUÍDO FACILITA CRIAÇÃO DE BRANCHES COLABORADORES CRIAM BRANCHES MANTENEDORES FAZER MERGES COM

BRANCHES DE COLABORADORES CADA DESENVOLVEDOR TRABALHA COM

UM PRÓPRIO REPOSITÓRIO

Page 52: Desenvolvimento organizado com VCS

VCS DISTRIBUIDO

main 1.2feature-tal bugfix-bar

main 1.2main

servidor

1.2

feature-x bugfix-y

MANTENEDOR JOÃOJOSÉ

bugfixbar

Page 53: Desenvolvimento organizado com VCS

COMANDOS BÁSICOS DE VCS

Page 54: Desenvolvimento organizado com VCS

COMANDOS BÁSICOS DE VCS CHECKOUT

Page 55: Desenvolvimento organizado com VCS

CHECKOUT

REPOSITÓRIO

WORKINGCOPY

SERVIDOR

REVISÃO 123

PEER

CHECKOUT

Page 56: Desenvolvimento organizado com VCS

COMANDOS BÁSICOS DE VCS checkout (co) commit (cm)

Page 57: Desenvolvimento organizado com VCS

COMMIT

REPOSITÓRIO

WORKINGCOPY

SERVIDOR

REVISÃO 124

PEER

COMMIT

Page 58: Desenvolvimento organizado com VCS

COMANDOS BÁSICOS DE VCS checkout (co) commit (cm) import

Page 59: Desenvolvimento organizado com VCS

IMPORT

REPOSITÓRIO

PROJETOSEM VCS

SERVIDOR

REVISÂO 1

PEER

Page 60: Desenvolvimento organizado com VCS

COMANDOS BÁSICOS DE VCS checkout (co) commit (cm) import export

Page 61: Desenvolvimento organizado com VCS

EXPORT

REPOSITÓRIO

PASTASEM VCS

SERVIDOR

REVISÃO 123

PEER

Page 62: Desenvolvimento organizado com VCS

COMANDOS BÁSICOS DE VCS checkout (co) commit (cm) import export diff branch merge add mv, cp, mkdir, etc.

Page 63: Desenvolvimento organizado com VCS

INTRODUÇÃO A SVN, BZR e GIT

Page 64: Desenvolvimento organizado com VCS

INTRODUÇÃO A SVN, BZR e GIT Introdução ao uso das ferramentas da linha de

comando Assumindo que está usando Linux Para Windows existem ferramentas gráficas

Page 65: Desenvolvimento organizado com VCS

SVN

Page 66: Desenvolvimento organizado com VCS

SVN = Subversion

Page 67: Desenvolvimento organizado com VCS

Subversion Centralizado Mais usado hoje em dia Google Code, Sourceforge, etc. Ótima integração com Eclipse, Zend Studio,

Netbeans, etc.

Page 68: Desenvolvimento organizado com VCS

Subversion Repositório num diretório público, pode ser

hospedado pelo http ou protocolo proprietário Subdiretório .svn em cada diretório contém

metadata

Page 69: Desenvolvimento organizado com VCS

Subversion Ferramentas de linha de comando:

svn svnadmin

Page 70: Desenvolvimento organizado com VCS

Subversion Criando um novo repositório:

# svnadmin create /var/svn/meu_repo

Page 71: Desenvolvimento organizado com VCS

Subversion Importando um novo projeto no repositório:

$ cd meuprojeto $ svn import /var/svn/meu_repo/trunk

Page 72: Desenvolvimento organizado com VCS

Subversion Fazendo um checkout do repositório

$ svn checkout /var/svn/meu_repo/trunk meuprojeto

Page 73: Desenvolvimento organizado com VCS

Subversion Dando commit

$ cd meuprojeto # svn commit -m “Corrigiu bug #x”

Page 74: Desenvolvimento organizado com VCS

Subversion Criando um branch

# svn mkdir /var/svn/meu_repo/branches # svn cp /var/svn/meu_repo/trunk

/var/svn/meu_repo/branches/meu_branch

Page 75: Desenvolvimento organizado com VCS

Subversion Fazendo merge com outro branch:

$ cd meu_projeto $ svn merge /var/svn/meu_repo/branches@2

/var/svn/meu_repo/branches@3

Page 76: Desenvolvimento organizado com VCS

BZR

Page 77: Desenvolvimento organizado com VCS

BZR = Bazaar

Page 78: Desenvolvimento organizado com VCS

Bazaar Feito para poder ser usado de forma distribuída

ou centralizada Desenvolvida pela Canonical Hospedagem no https://launchpad.net Foco em facilidade de uso

Page 79: Desenvolvimento organizado com VCS

Bazaar Metadata fica na pasta .bzr Metadata apenas na pasta principal Uma pasta pode ser working copy e branch ao

mesmo tempo

Page 80: Desenvolvimento organizado com VCS

Bazaar Criar branch para um novo projeto:

$ cd meuprojeto $ bzr init

Adicionar arquivos no working copy: $ bzr add $ bzr commit -m “Initial import”

Page 81: Desenvolvimento organizado com VCS

Bazaar Criar branch do seu projeto:

$ bzr branch meuprojeto meuprojeto-foo Depois, para sincronizar o branch filho:

$ cd meuprojeto-foo $ bzr pull

Empurrando as mudanças para branch pai: $ bzr commit $ bzr push

Page 82: Desenvolvimento organizado com VCS

GIT

Page 83: Desenvolvimento organizado com VCS

GIT Distribuído Criado pelo Linus Torvalds para ser usado no

desenvolvimento do kernel Linux Otimizada para desempenho

Page 84: Desenvolvimento organizado com VCS

GIT Initializar um branch:

$ cd meuprojeto $ git init

Adicionar arquivos no working copy $ git add $ git commit -m “Initial import”

Page 85: Desenvolvimento organizado com VCS

PERGUNTAS?

Page 86: Desenvolvimento organizado com VCS

Mais informações: Sites

http://subversion.tigris.org http://svnbook.red-bean.com http://bazaar-vcs.org http://git-scm.com

Entre em contato comigo: [email protected] (e-mail / Google Talk) [email protected] (Windows Live Messenger) http://www.yogarine.net http://twitter.com/yogarine