Tutorial Subversion (SVN) › 2017 › 12 › tutorial-subve… · Tutorial Subversion (SVN) E q u...

Preview:

Citation preview

Tutorial Subversion (SVN)

Equipe: Pyxis Solutions IFSP - A6PGP

São Paulo 06 de Agosto de 2017.

Objetivo 4

O que é o SVN? 4

Estrutura do SVN 4

Observações 5

Caminho do repositório 5

Instalação do SVN 5

Criar uma pasta e adicionar um repositório 8

Utilizando o SVN por outros meios 13

Adicionar um documento ou um diretório 15

Realizar Alteração no Arquivo 18

Possíveis Erros 20

Outras funcionalidades 24

Integração com o Spring Tools Suite 27

Utilizando o SVN no STS 43

Referências 47

Versão: Autor Versão Descrição

Arion Melkan 1.0 Criação do documento

Arion Melkan 1.1 Revisão da Integração do SVN - STS

Objetivo Capacitar a equipe Pyxis Solutions a trabalhar com a ferramenta de

gerenciamento de versões: Subversion (SVN).

O que é o SVN? Em linhas gerais, o SVN é uma ferramenta de controle de versão de arquivos

(pdf, txt, csv, jar, cs, entre outros...). A vantagem de utilizar o Subversion é aproveitar o desenvolvimento num mesmo documento com mais de um usuário (multiusuário) alterando a partir de um único repositório. Isto facilita a comunicação de uma equipe num desenvolvimento de um projeto e todos que participam ficam atualizados com a versão mais recente do documento, por exemplo.

Vale lembrar que o SVN possui diversas utilizações, entre algumas: merge de conteúdo, armazenamento de log (a partir do log sabe-se quem “comitou”) e exibição das diferenças das versões de um arquivo.

Estrutura do SVN A partir de um documento original, quando alterado, o SVN começa a criar

suas revisões e a cada nova revisão é substituída a versão anterior. Segue o esquema:

● Documento original (Não modificado);

○ Revisão 2 (Revision 2 - algum usuário alterou este documento e atualizou o repositório);

■ Revisão 3 (Revision 3 - o mesmo, o outro usuário alterou o documento e atualizou no repositório do SVN);

Percebe-se que a revisão 3 do documento é a nova versão no repositório, além disso ela é a alteração da revisão 2, que por sua vez, foi a alteração do documento original.

Observações Antes de explicar como foi feito a instalação, neste tutorial utiliza-se os

seguintes softwares:

● Windows 10 (Até a versão do windows 7, segue a mesma linha de raciocínio);

● Interface gráfica: TortoiseSVN;

Caminho do repositório Segue URL do repositório da equipe Pyxis Solutions que necessita

“importar/clonar”: https://svn.spo.ifsp.edu.br/svn/a6pgp/S201702-SEG/Pyxis/

Instalação do SVN

O site escolhido foi a da própria interface gráfica: TortoiseSVN. https://tortoisesvn.net/downloads.html

Imagem 01: Site da TortoiseSVN;

Observa-se que a parte central do site oferece a opção mais atualizada da GUI e, mais abaixo, existem duas opções: a primeira é a instalação para os computadores com a arquitetura 32 bits e a segunda é a instalação para os

computadores com a arquitetura 64 bits, lado esquerdo e lado direito respectivamente.

Uma vez feito o download do instalador, clique, duas vezes ou aperte o enter,

no instalador do SVN, conforme imagem 02:

Imagem 02: Acionando o instalador do TortoiseSVN;

A partir da inicialização do instalador, pressione o next.

Imagem 03: As opções do Tortoise que serão instaladas;

As opções instaladas foram feitas por default, segundo o que exibe na imagem 03. No entanto, caso optar por utilizar a linha de comando (recomenda-se utilizar a interface para maior fluidez de seu tempo) marque a opção que contém um X e com a seguinte descrição: “command line client tools”.

Caso queira instalar sem a linha de comando e, posteriormente, querer inserir essa funcionalidade, siga os seguintes passos:

● Acessar o instalador, conforme imagem 02; ● Escolher a opção “Modify”, conforme imagem 04; ● E a marcar a opção que contém o X e com a descrição da ferramenta do

cliente por linha de comando, conforme imagem 05;

Imagem 04: Opções para modificar, reparar e remover o TSVN;

Imagem 05: Habilitando a opção da linha de comando;

Criar uma pasta e adicionar um repositório Neste tópico o núcleo do assunto é mostrar como redirecionar uma pasta a um

repositório específico.

Imagem 06: Criando uma pasta;

A boa prática diz que para criar algum diretório que faça sem ser na área de trabalho, mas na imagem 06 isto é apenas um exemplo.

Percebe-se que a pasta que foi criada está “jogada” na área de trabalho.

Imagem 07: Selecionando a opção SVN Checkout;

Para acessar a tela do SVN, segundo imagem 07, aperte com o botão direito em cima da pasta que foi criada, neste caso a pasta que foi criada é: TesteSVN.

Momentaneamente o que é interessante em saber é que na opção Repository há dois campos principais:

● URL of Repository: caminho do repositório mais a pasta que será adicionada. ● Checkout directory: caminho da pasta criada mais o seu nome.

Imagem 08: Exemplo de um repositório;

Observa-se que na imagem 08 foi escolhida uma pasta do repositório SVN do IFSP, de exemplo, para adicionar as suas estruturas na pasta TesteSVN.

A opção do Checkout Depth permite escolher dentro da pasta selecionada no repositório:

● A alternativa Fully recursive: Basicamente, fará a instalação de todos os diretórios e arquivos estruturados;

● A alternativa Immediate children, including folders: Requisitará somente os arquivos filhos e suas pastas;

● A alternativa Only file children: Requisitará somente o arquivo filho da pasta selecionada;

● A alternativa Only this item: Requisitará somente o item da pasta selecionada;

O importante é apenas conhecer, pois por padrão utiliza a alternativa fully recursive.

Existem também os dois campos abaixo:

● Omit externals: Uma opção que facilita a verificação durante um update to revision.

● Choose items: esta opção oferece a personalização das alternativas acima, conforme imagem 09.

Imagem 09: Personalização de pastas e arquivos para serem “instalados” na sua

pasta.

Atente-se que a partir dessa personalização, o SVN montará a estrutura de diretórios e/ou arquivos escolhidos na sua pasta.

Imagem 10: Necessidade de autorização;

Na maioria dos repositórios existe a necessidade da autenticação do usuário seja para realizar um checkout, update ou commit.

A imagem 10 necessitou de autenticação do usuário para importar a estrutura da pasta selecionada no repositório do IFSP.

Imagem 11: Aviso de checkout com sucesso;

Observa-se que após a autenticação do usuário surge a tela de “Checkout Finished”, imagem 11. Esta tela contém as informações das ações e o caminho que

recebeu essas ações. Além da informação da quantidade adicionada na determinada pasta.

Imagem 12: Pasta atualizada e sinalizada em verde com o símbolo de “correto”;

Commit realizado com sucesso, conforme imagens: 12 e 13.

Imagem 13: Estrutura de repositório instalado com sucesso;

Toda vez que é realizado um checkout, é instalado uma pasta oculta (.svn) que possui as configurações e o redirecionamento do repositório.

NÃO APAGUE A PASTA .SVN, PARA O SEU BEM!

Utilizando o SVN por outros meios A intenção deste tópico é apenas mostrar que pode-se utilizar o SVN por

outros meios, no entanto recomenda-se usar uma ferramenta gráfica, no caso a escolhida foi TortoiseSVN.

Imagem 14: Comando do checkout através do cmd;

Imagem 15: Comando do checkout realizado com sucesso no cmd;

Observa-se que foi utilizado o comando: svn checkout “nome do repositório” + “o caminho e nome da pasta”, no exemplo foi usada a mesma pasta e por isso ./ (ponto e barra) de acordo com a imagem 14. Após este comando, o checkout foi realizado com sucesso na pasta Teste2SVNCMD.

Imagem 16: Pasta Teste2SVNCMD atualizada;

A imagem 16 serve, somente, para demonstrar que ocorreu a atualização da pasta de exemplo depois de utilizado o comando do SVN no cmd.

Adicionar um documento ou um diretório

Imagem 17: Criando um arquivo;

A imagem 17 exibe um arquivo qualquer no formato UTF-8, este formato é importantíssimo para manter o repositório organizado.

Imagem 18: Adicionando um arquivo;

Para adicionar o arquivo, primeiro pressione o botão direito do mouse em cima do arquivo e direcione o ponteiro no TortoiseSVN, feito isso, abrirá uma lista de opções, procure por add (símbolo de mais).

Pode-se adicionar de outro jeito, pressione o botão direito do mouse onde não há um arquivo e siga o mesmo caminho: TortoiseSVN -> add. Esta solução se torna eficiente quando precisa inserir mais de um arquivo e/ou pasta. Conforme imagem 19.

Imagem 19: Adicionando um arquivo de outra maneira;

Imagem 20: Realizando commit;

Depois de adicionar o arquivo e ele possuir o símbolo em azul de adição ocorre a necessidade de realizar um commit, isto é passar, de fato, ao repositório. Pois bem, pressione com o botão direito e escolha a opção commit. Conforme a imagem 20, abrirá uma tela com diversas opções: possibilidade de verificar uma mensagem já utilizada (recent messages), escrever uma mensagem nova e escolher o arquivo a adicionar.

Imagem 21: Commit com sucesso;

A imagem 21 mostra a tela do commit finalizado, neste caso o commit foi feito com sucesso.

Imagem 22: Arquivo adicionado com sucesso;

De acordo com a imagem 22 o arquivo foi adicionado com sucesso na pasta de exemplo. Percebe-se quando há o caso de sucesso, o símbolo é de um visto em verde.

Realizar Alteração no Arquivo Este tópico demonstra como alterar um arquivo.

Imagem 23: Arquivo sendo alterado;

Imagem 24: Realizando o commit;

Imagem 25: Arquivo alterado com sucesso;

A alteração de um arquivo é bem simples, quando o usuário alterar, ele fará o seguinte passo: realizar commit do arquivo alterado.

Possíveis Erros Tópico que apresenta alguns erros que possam acontecer durante a utilização

do SVN. Por algum motivo, o usuário esquece de fazer o comando de update, altera um

arquivo já modificado por outro usuário e faz um commit. Este último comando falhará, pois a última revisão não foi validada na pasta desse usuário, conforme as imagens 26 e 27:

Imagem 26: Tela do commit com resultado de falha;

Imagem 27: Tela do SVN pedindo para realizar o update;

Imagem 28: Tela do SVN pedindo para realizar o update;

Após a realização do update, o usuário poderá obter problemas, pois ainda terá a questão de o arquivo estará com outra revisão.

Imagem 29: Tela do SVN com o comando do revert;

Para evitar que aconteça o que ocorre na imagem 28, pressione com o botão direito do mouse no arquivo, direcione o ícone do mouse para TortoiseSVN e selecione a opção Revert. Esta opção fará a reversão e recuperará a última revisão que não possui conflito.

Imagem 30: Tela do SVN com o revert feito com sucesso;

Conforme a imagem 30, o revert foi feito com sucesso. Após feito o revert, a situação do arquivo com conflito estará normalizada e o usuário possuirá o último arquivo alterado sem conflito, de acordo com a imagem 31.

Imagem 31: Arquivo com a situação normalizada;

Às vezes acontece de um usuário retirar um arquivo de sua pasta e, posteriormente, realizar um update para baixar os conteúdos no SVN. No entanto, o arquivo que foi retirado não teve um commit realizado e com isso surge um conflito na pasta, conforme imagem 32.

Imagem 32: Pasta com a sinalização de “warning”;

Imagem 33: Tela do SVN com alerta do update sem sucesso;

Imagem 34: Commit do arquivo deletado;

Para resolver esta pendência o usuário necessitará realizar um commit, conforme descrito na imagem 34. Assim ele conseguirá atualizar o arquivo e a pasta, evitando o erro que acontece na imagem 33.

Outras funcionalidades Tópico para apresentar algumas funções a mais que o SVN possui.

A primeira funcionalidade serve para verificar quais foram as modificações ocorridas num arquivo ou até mesmo num diretório. Este log mostra as ações que foram tomadas pelo autor ou mais autores, exibindo as datas de alterações e os comentários que postou ou postaram para justificar a determinada ação ou ações.

Imagem 34: Tela do SVN que mostra os logs de um arquivo;

Para utilizar a funcionalidade de verificar o log, acesse com o botão direito do mouse numa pasta ou num arquivo, direcione o ponteiro do mouse para TortoiseSVN e clique em Show Log, primeiro opção quando acessar uma pasta, quando for um arquivo será a terceira opção, ambas opções de cima para baixo.

Já a segunda funcionalidade é bem interessante, pois mostra num gráfico seja em pizza, em barra ou até mesmo em linha as estatísticas de ações que foram tomadas pelo autor ou mais usuários. Estas estatísticas filtram pelo autor, pela data, por quem foi o criador ou pelos usuários que alteraram.

Imagem 35: Tela com a estatística de commit pelo author;

Para utilizar a funcionalidade de estatística, acesse com o botão direito do mouse numa pasta ou num arquivo, direcione o ponteiro do mouse para TortoiseSVN e clique em Show Log, primeiro opção de cima para baixo. Quando acessar a tela Show Log, pressione o botão Statistics.

A terceira funcionalidade também é muito interessante. Com essa funcionalidade consegue perceber onde ocorreram as alterações no arquivo e comparar com revisão anterior e a revisão atual.

Imagem 36: Comparar revisão anterior com revisão atual;

Para utilizar a funcionalidade de comparação de alteração no arquivo, acesse com o botão direito do mouse no arquivo, esta funcionalidade não serve para diretórios, direcione o ponteiro do mouse para TortoiseSVN e clique em Diff with previous version.

Integração com o Spring Tools Suite Tópico que explica a comunicação entre o STS e o SVN.

Antes de explanar sobre a integração, tenha o Spring Tools Suite na máquina para instalar o plugin subversive.

Imagem 37: Tela inicial do eclipse;

Acesse o Spring Tools Suite (STS - versão do eclipse tunada), conforme imagem 37. Esta imagem o acesso foi com o eclipse, mas isso não afeta em nada. Os passos são os mesmos.

Imagem 38: Tela do install new software;

Acesse a opção help e dentro e aperte na opção install new software, assim aparecerá uma tela, de acordo com que exibe na imagem 38.

Existe outra maneira também, na opção Eclipse Marketplace da aba Help, conforme imagem 39.

Imagem 39: Tela do eclipse marketplace;

Ambas são fáceis de utilizar e fica a “gosto do cliente”. Não existe recomendação, portanto utilizem uma dessas duas opções. Isto não influenciará o resultado final.

O tutorial continuará a detalhar o passo a passo com a primeira opção, imagem 38.

Imagem 40: Tela do install new software com a busca feita;

Preencha o espaço work with com a url: Oxygen - http://download.eclipse.org/releases/oxygen

Continuando na mesma tela, preencha o próximo campo com Subversive e escolha as opções:

● Subversive Revision Graph (Optional) ● Subversive SVN Team Provider

Após as escolhas, selecione o next.

Imagem 41: Instalação de alguns recursos do Subversive;

A imagem 41 exibe o que será instalado, selecione o next.

Importante: ambos os caminhos, Install New Software e Eclipse Marketplace, levam para a imagem 41.

Imagem 42: Aprovação dos termos de licença dos recursos;

A imagem 42 exibe o termo de licença para instalação dos recursos, plugins, que serão instalados. Selecione a opção que contenha a seguinte descrição: “I accept the terms of the license agreement”.

Imagem 43: Restart do STS para concluir instalação dos recursos;

Após a instalação dos plugins, o STS exibirá um pop-up para realizar o restart na aplicação e fazer os efeitos da instalação. Clique em Restart Now.

Imagem 44: Tela de perspectiva dos softwares instalados;

Para acessar a tela do other perspective, acesse Window -> Perspective -> Open Perspective -> Other. Com isso abrirá a tela que aparece na imagem 43. Por fim, pressione o SVN Repository Exploring.

Imagem 45: Abertura do SVN repositories;

Na tela da imagem 45 perceba que o SVN Repositories está aberto e no canto do lado esquerdo. Com ele o usuário pode selecionar o repositório do SVN. Porém antes de selecionar algum repositório, verifique a instalação dos conectores do SVN.

Imagem 46: Tela de preferência do SVN, aba conector do SVN;

Para verificar, selecione: Window -> Preference -> Team -> SVN. Clique na aba SVN Connector e analise a opção SVN Connector. Se estiver vazia, acesse o Get Connectors… Conforme imagem 46.

Imagem 47: Tela de preferência do SVN, aba Estrutura do Projeto;

O usuário também pode colocar o workspace, modificando a opção Browse… Na aba Project structure, segundo o que ocorre na imagem 47.

Imagem 48: Instalação dos conectores do Subversive - SVN;

Após o usuário pressionar o botão Get Connectors da imagem 45. Abrirá uma tela com alguns conectores, selecione:

● SVN Kit 1.8.14; ● Native JavaHL 1.9.3 (64-bit E

De acordo com a imagem 48.

Por vias das dúvidas, instale, também, o plugin JavaHL (JNI) 1.9.6 (r1800392), de acordo com a imagem 49.

Imagem 49: Tela de Exibição do SVN com a interface JavaHL (JNI) 1.9.6;

Imagem 50: Tela de informação da localização do repositório;

Instalando os conectores, o usuário poderá localizar o repositório do SVN e sincronizar com STS. Para isso siga esses passos:

● Clique na parte do SVN Repositories no ícone que possui um “banco de dados” mais o ícone de adição em verde.

● Abrirá a tela New Repository Location. E preencha os dados nesta tela.

Imagem 51: Tela de informação da localização do repositório com informações

preenchidas;

Conforme a imagem 51, os dados do repositório e usuário de autenticação do mesmo foram preenchidos. Após esta etapa, clique em Finish.

Utilizem esta URL: https://svn.spo.ifsp.edu.br/svn/a6pgp/S201702-SEG/Pyxis/Desenvolvimento/Dedicatories.

Haverá um problema de certificação do site da faculdade, porém aperte o botão Trust, segundo imagem 52.

Imagem 52: Tela de informação da certificação da URL passada;

Após a imagem 52, haverá mais um aviso do STS, porém continue.

Pressionem o botão Trust Always!

Pronto, a localização do repositório estará feita.

Reiterando: Observa-se que a URL passada foi https://svn.spo.ifsp.edu.br/svn/a6pgp/S201702-SEG/Pyxis/Desenvolvimento, no entanto não utilizem esta URL!

Este caso foi para testes e tem a pasta Dedicatories dentro da pasta Desenvolvimento.

Utilizem esta URL: https://svn.spo.ifsp.edu.br/svn/a6pgp/S201702-SEG/Pyxis/Desenvolvimento/Dedicatories

Por fim, caso dê algum erro a localização do repositório e esteja em outra tela que não seja do repositório do SVN, redirecione manualmente, conforme imagem 53:

Imagem 53: Tela do spring, com os ícones a mostra. Canto superior direito;

Acesse o Ícone de dados com o nome svn que está ao lado do ícone do spring, conforme imagem 53.

Esta ação o levará abrir o SVN repositories, segundo imagem 45.

Imagem 54: Abertura do SVN repositories;

Se estiver atento no passo a passo do tutorial, provavelmente, o usuário terá apenas o repositório abaixo, apontado para a pasta do Dedicatories, segundo imagem 54.

Agora você realizará o check out da pasta Dedicatories do SVN para o seu workspace. Para isso, clique com o botão direito em cima do repositório, destacado em azul na imagem 54, e pressione o botão check out.

Caso dê algum erro e nenhum dos conectores forem instalados, o usuário terá que seguir este passo: Help -> Install New Software ou Eclipse Marketplace.

Imagem 55: Tela da opção install new softwares para a instalação dos conectores

SVN;

Após o passo, escolha a URL: http://community.polarion.com/projects/subversive/download/eclipse/6.0/neon-site/

E selecione as opções:

● Native JavaHL 1.9 Implementation (Optional); ● Subversive SVN Connectors; ● SVNKit 1.8.14 Implementation (Optional)

Instale principalmente o SVNKit 1.8.14, ele servirá como conector do SVN, conforme imagem 56:

Imagem 57: Tela Preferences, parte Team, onde mostra o conector SVN 1.8.14;

Após a instalação do conector, efetue os mesmos procedimentos de acordo com as imagens: 50 e 51.

Utilizando o SVN no STS Este tópico serve para explanar sobre a realização dos comandos do SVN

STS.

Antes de desenvolver, caso a estrutura com o checkout realizada não seja a habitual. Faça os seguintes procedimentos:

Imagem 58: Tela do Package Explorer com a pasta Dedicatories;

Imagem 59: Delete da pasta Dedicatories com a opção desabilitada da retirada do

diretório no workspace;

Aperte a tecla delete em cima da pasta Dedicatories, conforme imagem 58. Com isto, abrirá a tela de confirmação de apagar o diretório, de acordo com a imagem 59. Antes de pressionar o Ok, veja se a opção “Delete project contents on disk (cannot be undone)” esteja desabilitada. Uma vez que o usuário apagar sem desabilitar esta opção, terá que refazer todo o caminho!

Uma vez apagado o diretório, clique na opção File, nas abas do canto superior esquerdo, e vá até a opção Import. Escolha importar o diretório como um projeto Gradle. Esta escolha é importantíssima para um desenvolvimento correto da aplicação!

De acordo com a imagem 60.

Imagem 60: Tela de importação. Importar como projeto Gradle;

Agora o seu projeto deverá estar com um escopo no que a imagem 61 exibe.

Imagem 61: Projeto Dedicatories com a estrutura correta;

Perceba que a estrutura do projeto é importante para um bom desenvolvimento. Portanto não programe com uma estrutura que não seja a que aparece na imagem 61. Observa-se, também, que existe um ícone de dados, em amarelo, em toda estrutura. Isto significa que seu projeto está integrado com o repositório do SVN.

Sendo assim, clique com o botão direito em cima do projeto Dedicatories, escolha a opção Team e perceba que abrirá as opções do comando do SVN.

Imagem 62: Projeto Dedicatories com o os comandos do SVN integrados ao STS;

Pronto, segundo imagem 62, você já possuirá acessos aos comandos do SVN no STS.

Referências ● http://svnbook.red-bean.com/en/1.7/index.html ● https://subversion.apache.org/ ● https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/ ● https://www.youtube.com/watch?v=39WP4pzZOdw ● https://www.youtube.com/watch?v=cRkKjvXD5k8#t=120.06223 ● https://www.youtube.com/watch?v=r-CbsG7x0h8 ● https://eclipse.org/subversive/downloads.php

Recommended