desenvolvimento organizado com vcs

Post on 18-Jan-2017

1.404 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

BOM DIA!

meu nome:Alwin “Yogarine” Garside

ALVENIR

ALVES

ALWIN

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)

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

MONOTONE

VCSBZR

GIT

SVNCVS

MERCURIAL

GNU ARCH

SVK

Desenvolvimento organizadocom

WTF = VCS!?

Visual C#(ufa...)

VERSION CONTROL SYSTEM

SISTEMA DE CONTROLE DE VERSÃO

HUH?

PROJETOS SEM VCS:

Pasta por data?

Pasta por versão?

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

CHANGELOG?

CHANGELOG =LOG DE MUDANÇAS

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

DIFF'S?

DIFF = DIFERENÇA

DIFF UNIFICADA:

DIFF LADO-AO-LADO:

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

BRANCHES?

BRANCH = GALHO

GALHOS:

PROJETO = ÁRVORE(TREE)

TRONCO

(TRUNK)

TREE => TRUNK => BRANCHES

0.1 0.2 0.3

Feature A Feature B Feature C Feature D Feature E

TRUNK

SERIES BRANCHES:

FEATURE BRANCHES:

PROJECT TREE:

BRANCHES!

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

MERGE?

MERGE = JUNÇÃO

0.1 0.2 0.3

Feature A Feature B Feature C Feature D Feature E

TRUNK

SERIES BRANCHES

FEATURE BRANCHES

0.1 0.2 0.3

Feature A Feature B Feature C Feature D Feature E

TRUNK

MERGE

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

CENTRALIZADOVS.

DISTRIBUÍDO

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

WORKING COPY?

WORKING COPY =CÓPIA DE TRABALHO

WORKING COPY

REPOSITÓRIO

WORKINGCOPY

SERVIDOR

REVISÂO 123

PEER

WORKING COPY!

...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

VCS CENTRALIZADO

REPOSITÓRIOPEER

PEER

MANTENEDOR

PEER

PEER

SERVIDOR

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

VCS DISTRIBUIDO

main 1.2feature-tal bugfix-bar

main 1.2main

servidor

1.2

feature-x bugfix-y

MANTENEDOR JOÃOJOSÉ

bugfixbar

COMANDOS BÁSICOS DE VCS

COMANDOS BÁSICOS DE VCS CHECKOUT

CHECKOUT

REPOSITÓRIO

WORKINGCOPY

SERVIDOR

REVISÃO 123

PEER

CHECKOUT

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

COMMIT

REPOSITÓRIO

WORKINGCOPY

SERVIDOR

REVISÃO 124

PEER

COMMIT

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

IMPORT

REPOSITÓRIO

PROJETOSEM VCS

SERVIDOR

REVISÂO 1

PEER

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

EXPORT

REPOSITÓRIO

PASTASEM VCS

SERVIDOR

REVISÃO 123

PEER

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

INTRODUÇÃO A SVN, BZR e GIT

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

SVN

SVN = Subversion

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

Netbeans, etc.

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

Subversion Ferramentas de linha de comando:

svn svnadmin

Subversion Criando um novo repositório:

# svnadmin create /var/svn/meu_repo

Subversion Importando um novo projeto no repositório:

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

Subversion Fazendo um checkout do repositório

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

Subversion Dando commit

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

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

Subversion Fazendo merge com outro branch:

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

/var/svn/meu_repo/branches@3

BZR

BZR = Bazaar

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

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

mesmo tempo

Bazaar Criar branch para um novo projeto:

$ cd meuprojeto $ bzr init

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

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

GIT

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

desenvolvimento do kernel Linux Otimizada para desempenho

GIT Initializar um branch:

$ cd meuprojeto $ git init

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

PERGUNTAS?

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: yogarine@gmail.com (e-mail / Google Talk) yogarine@msn.com (Windows Live Messenger) http://www.yogarine.net http://twitter.com/yogarine

top related