svn>
subversion
QUEM TEM
MEDODE MUDANÇA?
Na natureza nada se cria, nada se
perde, tudo se transforma.“
Antoine Lavoisier
MUDANÇAS
SÃO INEVITÁVEIS
SOURCE CONTROL SYSTEMS
TIME
TRAVEL
svn>
REPOSITÓRIO
ESTRUTURA
BÁSICA
/trunk
versão estável
pronto pra ser lançado em produção
/branch
trabalhar paralelamente
desenvolver novas funcionalidades
/tag
marco histórico
um rótulo pra identificar facilmente algo
SVN
COMMANDS
obtendo arquivos do
repositório
usado para obtermos os arquivos de um
projeto já existente ao iniciarmos nele
$ svn checko...
adicionando arquivos ao
controle de versão
usado para adicionarmos novos arquivos
criados ao controle de versão do svn
$ s...
obtendo as modificações
do repositório
usado para atualizarmos os arquivos
com 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 removidos
do repositór...
enviando as modificações
para o repositório
usado para enviar ao repositório
as modificações realizadas nos arquivos
$ svn...
renomeando arquivos
do controle de versão
usado para renomear arquivos$ svn mv
os arquivos só serão renomeados no
repositó...
DEMO
IMPLEMENTANDO
NOVAS FUNCIONALIDADES
criando uma branch
geramos uma nova linha de desenvolvimento
a partir da versão mais estável, ou seja,
a trunk
$ svn copy
trabalhando com a branch
usamos o mesmo comando que vimos antes
para obter os arquivos já existentes no
repositório, só qu...
DEMO
CONFLITOS
causa comum
$ svn commit FILE revision 5
$ svn commit FILE revision 5
revision 6
$ svn: Out of date
$ svn update
$ svn: Co...
o que fazer?
(...)
resolvendo conflitos como
um altruísta
revertemos as mudanças locais e
atualizamos os arquivos com a
versão do repositório...
resolvendo conflitos como
um egoísta
ignoramos as mudanças vindas do
repositório e mantemos as mudanças locais
$ cp FILE.m...
resolvendo conflitos como
um adulto
verificamos as mudanças vindas
do repositório com as mudanças locais
<<<<<<< .mine
Thi...
DEMO
FINALIZANDO
O TRABALHO
merge
mesclamos as mudanças da branch na trunk$ svn merge
--reintegrate
traga as mudanças da trunk para a branch,
resolva ...
DEMO
CRIANDO MARCOS
NA HISTÓRIA
criando uma tag
gerarmos uma tag de uma release, snapshot
e etc
$ svn copy
DEMO
BOAS PRÁTICAS
SVN + 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
a...
atualizar o .csproj
ao adicionar novos arquivos devemos incluir o .csproj no
nosso commit, assim, os arquivos adicionados ...
ignorar o .csproj.user
esse arquivo armazena suas configurações da IDE do Visual
Studio, por mais legal que elas possam se...
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.
“
Desconhecido
mantenha atualizado seu...
Muito obrigado!
Rafael Kiyohiro Une
rafael@agrotools.com.br
twitter.com/rafaelune
github.com/rafaelune
Jonathan Tavares
jo...
SVN - Subversion
SVN - Subversion
Próximos SlideShares
Carregando em…5
×

SVN - Subversion

437 visualizações

Publicada em

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

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
437
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
5
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

SVN - Subversion

  1. 1. svn> subversion
  2. 2. QUEM TEM MEDODE MUDANÇA?
  3. 3. Na natureza nada se cria, nada se perde, tudo se transforma.“ Antoine Lavoisier
  4. 4. MUDANÇAS SÃO INEVITÁVEIS
  5. 5. SOURCE CONTROL SYSTEMS
  6. 6. TIME TRAVEL
  7. 7. svn>
  8. 8. REPOSITÓRIO
  9. 9. ESTRUTURA BÁSICA
  10. 10. /trunk versão estável pronto pra ser lançado em produção
  11. 11. /branch trabalhar paralelamente desenvolver novas funcionalidades
  12. 12. /tag marco histórico um rótulo pra identificar facilmente algo
  13. 13. SVN COMMANDS
  14. 14. obtendo arquivos do repositório usado para obtermos os arquivos de um projeto já existente ao iniciarmos nele $ svn checkout
  15. 15. adicionando arquivos ao controle de versão usado para adicionarmos novos arquivos criados ao controle de versão do svn $ svn add os novos arquivos só são adicionados ao repositório remoto após o commit
  16. 16. obtendo as modificações do repositório usado para atualizarmos os arquivos com as modificações do repositório $ svn update
  17. 17. removendo arquivos do controle de versão usado para remover arquivos$ svn delete os arquivos só são removidos do repositório remoto após o commit
  18. 18. enviando as modificações para o repositório usado para enviar ao repositório as 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
  19. 19. renomeando arquivos do controle de versão usado para renomear arquivos$ svn mv os arquivos só serão renomeados no repositório remoto após o commit
  20. 20. DEMO
  21. 21. IMPLEMENTANDO NOVAS FUNCIONALIDADES
  22. 22. criando uma branch geramos uma nova linha de desenvolvimento a partir da versão mais estável, ou seja, a trunk $ svn copy
  23. 23. trabalhando com a branch usamos o mesmo comando que vimos antes para obter os arquivos já existentes no repositório, só que dessa vez apontamos para a branch que estamos trabalhando $ svn checkout
  24. 24. DEMO
  25. 25. CONFLITOS
  26. 26. causa comum $ svn commit FILE revision 5 $ svn commit FILE revision 5 revision 6 $ svn: Out of date $ svn update $ svn: Conflicted!
  27. 27. o que fazer? (...)
  28. 28. resolvendo conflitos como um altruísta revertemos as mudanças locais e atualizamos os arquivos com a versão do repositório $ svn revert $ svn update
  29. 29. resolvendo conflitos como um egoísta ignoramos as mudanças vindas do repositório e mantemos as mudanças locais $ cp FILE.mine FILE $ svn resolved FILE
  30. 30. resolvendo conflitos como um adulto verificamos as mudanças vindas do repositório com as mudanças locais <<<<<<< .mine This is fun stuff! ======= This is a doc file >>>>>>> .r6
  31. 31. DEMO
  32. 32. FINALIZANDO O TRABALHO
  33. 33. 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
  34. 34. DEMO
  35. 35. CRIANDO MARCOS NA HISTÓRIA
  36. 36. criando uma tag gerarmos uma tag de uma release, snapshot e etc $ svn copy
  37. 37. DEMO
  38. 38. BOAS PRÁTICAS SVN + VS
  39. 39. 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
  40. 40. 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
  41. 41. 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
  42. 42. 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
  43. 43. DEMO
  44. 44. RECOMENDAÇÕES
  45. 45. TortoiseSVN extensão pro Windows FREE! http://tortoisesvn.net/
  46. 46. VisualSVN plugin integrado ao Visual Studio https://www.visualsvn.com/visualsvn/
  47. 47. Se quiser derrubar uma árvore na metade do tempo, passe o dobro amolando o machado. “ Desconhecido mantenha atualizado seus plugins
  48. 48. Muito obrigado! Rafael Kiyohiro Une rafael@agrotools.com.br twitter.com/rafaelune github.com/rafaelune Jonathan Tavares jonathan@agrotools.com.br

×