SVN - Subversion

Preview:

DESCRIPTION

Apresentação explicando detalhes básicos do SVN.

Citation preview

svn>

subversion

QUEM TEM

MEDODE MUDANÇA?

Na natureza nada se cria, nada se perde, tudo se transforma.“

Antoine Lavoisier

MUDANÇASSÃO INEVITÁVEIS

SOURCE CONTROL SYSTEMS

TIMETRAVEL

svn>

REPOSITÓRIO

ESTRUTURABÁSICA

/trunk

versão estávelpronto pra ser lançado em produção

/branch

trabalhar paralelamentedesenvolver novas funcionalidades

/tag

marco históricoum rótulo pra identificar facilmente algo

SVNCOMMANDS

obtendo arquivos do repositório

usado para obtermos os arquivos de umprojeto já existente ao iniciarmos nele

$ svn checkout

adicionando arquivos ao controle de versão

usado para adicionarmos novos arquivoscriados ao controle de versão do svn

$ svn add

os novos arquivos só são adicionados aorepositório remoto após o commit

obtendo as modificações do repositório

usado para atualizarmos os arquivoscom as modificações do repositório

$ svn update

removendo arquivos do controle de versão

usado para remover arquivos$ svn delete

os arquivos só são removidosdo repositório remoto após o commit

enviando as modificações para o repositório

usado para enviar ao repositórioas modificações realizadas nos arquivos

$ svn commit

faça um update antes do commit, assim você pode resolver os conflitos e revalidar a versão antes de commitar

renomeando arquivos do controle de versão

usado para renomear arquivos$ svn mv

os arquivos só serão renomeados norepositório remoto após o commit

DEMO

IMPLEMENTANDONOVAS FUNCIONALIDADES

criando uma branch

geramos uma nova linha de desenvolvimentoa partir da versão mais estável, ou seja, a trunk

$ svn copy

trabalhando com a branch

usamos o mesmo comando que vimos antespara obter os arquivos já existentes norepositório, só que dessa vez apontamospara a branch que estamos trabalhando

$ svn checkout

DEMO

CONFLITOS

causa comum

$ svn commit FILE revision 5

$ svn commit FILE revision 5

revision 6

$ svn: Out of date $ svn update$ svn: Conflicted!

o que fazer?

(...)

resolvendo conflitos comoum altruísta

revertemos as mudanças locais e atualizamos os arquivos com a versão do repositório

$ svn revert$ svn update

resolvendo conflitos comoum egoísta

ignoramos as mudanças vindas do repositório e mantemos as mudanças locais

$ cp FILE.mine FILE$ svn resolved FILE

resolvendo conflitos comoum adulto

verificamos as mudanças vindas do repositório com as mudanças locais

<<<<<<< .mineThis is fun stuff! =======This is a doc file >>>>>>> .r6

DEMO

FINALIZANDOO TRABALHO

merge

mesclamos as mudanças da branch na trunk$ svn merge --reintegrate

traga as mudanças da trunk para a branch,resolva os conflitos e depois faça o merge na trunk

DEMO

CRIANDO MARCOSNA HISTÓRIA

criando uma tag

gerarmos uma tag de uma release, snapshote etc

$ svn copy

DEMO

BOAS PRÁTICASSVN + VS

ignorar bin e obj

removemos os arquivos de build do controle de versão

controle de versão de código não trabalha bem com arquivos binários

atualizar o .csproj

ao adicionar novos arquivos devemos incluir o .csproj no nosso commit, assim, os arquivos adicionados ficam disponíveis para os demais membro do time trabalhando no projeto

ignorar o .csproj.user

esse arquivo armazena suas configurações da IDE do Visual Studio, por mais legal que elas possam ser pra você, gosto é gosto e não se discute

ignorar o *.suo

outro arquivo que armazena opções do usuário para a solução e não deve ser incluído no controle de versão

DEMO

RECOMENDAÇÕES

TortoiseSVN

extensão pro Windows

FREE!

http://tortoisesvn.net/

VisualSVN

plugin integrado ao Visual Studio

https://www.visualsvn.com/visualsvn/

Se quiser derrubar uma árvore na metade do tempo, passe o dobro

amolando o machado.“

Desconhecidomantenha atualizado seus plugins

Muito obrigado!Rafael Kiyohiro Une

rafael@agrotools.com.brtwitter.com/rafaelunegithub.com/rafaelune

Jonathan Tavares

jonathan@agrotools.com.br

Recommended