• Nenhum resultado encontrado

3 METODOLOGIA DE PESQUISA

4.1 APLICAÇÃO DO SUBVERSION

4.1.13 Branch e Tags

O SVN trata cada branch como ramificação através de diretórios presentes no repositório. Foram criadas novas cópias de trabalho para demonstrar o funcionamento no sistema. Como explicado anteriormente, o trunk é a principal linha de versionamento, portanto foi criada uma cópia de trabalho do trunk, o branch principal na árvore do repositório. Na figura 33 é possível ver a realização do processo.

Figura 33 - Criação de cópia de trabalho no Subversion 2

Fonte: elaborado pelo próprio autor (2016)

Foi criada uma cópia de trabalho realizando checkout da pasta, ou melhor dizendo, do

branch principal trunk.

Figura 34 - Conteúdo da cópia do Branch no Subversion 1

Fonte: elaborado pelo próprio autor (2016)

Na cópia criada foram trazidos apenas os arquivos contidos no trunk, conforme pode ser visto na figura 34. O trunk possui a principal versão em desenvolvimento, então para trabalhar sem comprometer o trunk, foi criado um branch chamado “exemploTCC”. Os diretórios trunk, branches e tags foram criados antes mesmo de se iniciar a cópia de trabalho, seguindo-se o padrão recomendado e ainda conforme o padrão dentro da pasta branches são colocados os diferentes branches que o projeto pode conter. Os branches podem ser criados a partir de outro branche ou o próprio trunk, como foi feito para criar o branche “exemploTCC”. A criação do novo branch pode ser vista na figura 35.

70

Figura 35 - Criação de Branche no Subversion 1

Fonte: elaborado pelo próprio autor (2016)

A criação do novo branch pode ser realizada de vários modos, porém a maneira mais utilizada e recomendada na documentação da ferramenta é através do recurso de copiar. Foi realizado então um checkout deste novo branch para criar uma cópia de trabalho baseada nele, conforme é mostrado na figura 36.

Figura 36 - Criação de cópia de trabalho no Subversion 3

Fonte: elaborado pelo próprio autor (2016)

Na listagem do conteúdo da pasta “copiaExemploTCC” é possível ver que os arquivos contidos em trunk, agora também estão presentes no novo branche, a figura 37 mostra a listagem que foi realizada.

Figura 37 - Conteúdo da cópia do Branch no Subversion 2

Fonte: elaborado pelo próprio autor (2016)

Conforme pode ser visto na figura 38, foi adicionado um novo arquivo na cópia de trabalho “copiaExemploTcc”, o arquivo “arquivo3”.

71

Figura 38 - Adição de Arquivos no Subversion 4

Fonte: elaborado pelo próprio autor (2016)

Uma nova cópia de trabalho baseada no branche “exemploTCC” foi criada, serviu para testar se a adição do arquivo “arquivo3” ocorreu para o diretório correto no repositório.

Figura 39 - Criação de cópia de trabalho no Subversion 4

Fonte: elaborado pelo próprio autor (2016)

Na figura 39 é mostrado a criação da nova cópia de trabalho, como pode ser visto recebeu o nome “testeExemploTCC” e possui os mesmos arquivos que estão disponíveis no branch em questão. Com o teste realizado, pode-se verificar, que as alterações realizadas na cópia de trabalho “copiaExemploTcc”, foram corretamente aplicadas ao branch correspondente dentro do repositório, pois ao realizar a nova cópia de trabalho os arquivos da cópia de trabalho anterior também estão presentes nesta.

Em relação ao diretório tags, nele são colocadas pastas, na maioria das vezes para identificar um momento de um projeto, ou até mesmo o conjunto correspondente a uma determinada versão de um projeto que foi liberada. Conforme a figura 40, foi criada uma tag para identificar a versão atual em que se encontra o trunk.

72

Figura 40 - Criação de Tag no Subversion

Fonte: elaborado pelo próprio autor (2016)

Não foi criada uma cópia de trabalho para esta tag, mas já foi possível visualizar que a criação de branches e tags acontece da mesma forma.

4.1.14 Conflito

As cópias de trabalho “copiaExemploTcc” e “testeExemploTCC” possuem os mesmos arquivos, por terem vindo do mesmo branch, então em ambas as cópias de trabalho o arquivo “arquivo1” foi alterado. Em “copiaExemploTcc” foi adicionada uma quinta linha com o conteúdo que a figura 41 mostra.

Figura 41 - Alteração de Arquivo no Subversion 3

Fonte: elaborado pelo próprio autor (2016)

Na cópia “testeExemploTCC” foi adicionada uma quinta linha com o seguinte conteúdo mostrado na figura 42.

Figura 42 - Alteração de Arquivo no Subversion 4

Fonte: elaborado pelo próprio autor (2016)

Para explicar melhor o que aconteceu até o momento, em duas cópias de trabalho, oriundas de um mesmo branch, o mesmo arquivo foi alterado na mesma linha. Foi realizado

73 primeiramente, como mostra a figura 43, o commit das alterações realizadas na cópia “testeExemploTCC”.

Figura 43 - Commit no Subversion 4

Fonte: elaborado pelo próprio autor (2016)

O primeiro commit ocorreu normalmente, depois foi realizado um update na cópia “copiaExemploTcc” para sincronizar com as últimas alterações realizadas no repositório. Figura 44 - Update da Cópia de Trabalho no Subversion 2

Fonte: elaborado pelo próprio autor (2016)

Durante a operação de update, como mostra a figura 44, o SVN encontrou conflito em um arquivo e foi o recém alterado arquivo “arquivo1”. Para dar prosseguimento na atualização da cópia de trabalho e logo após realizar o commit, foi necessário primeiro resolver o conflito identificado. Como mostra a figura 45, o SVN propôs algumas opções em tela, mas elas foram ignoradas, foi utilizada uma ferramenta externa em relação ao pacote do SVN. A ferramenta se chama Meld e têm entre suas funções a simples função de comparar e editar arquivos de texto plano. Ao pressionar a tecla “F” no terminal foram mostradas todas as opções oferecidas pelo SVN.

74

Figura 45 - Lista de Opções no Subversion

Fonte: elaborado pelo próprio autor (2016)

Dentre as opções listadas foi utilizada a opção “P”, que permite resolver o conflito em outro momento. Com a ferramenta Meld em execução e ao comparar o arquivo “arquivo1” presente em cada cópia de trabalho, são mostradas as diferenças dos arquivos lado a lado, conforme a figura 46 que mostra a comparação.

Figura 46 - Comparação de arquivo no Subversion

Fonte: elaborado pelo próprio autor (2016)

Por fim o arquivo tendo o usuário decidind que o “arquivo1” ficaria com o conteúdo do primeiro commit, o da cópia de trabalho testeExemploTCC. Após a solução do conflito foi

75 realizado um novo update, apenas para checar se está tudo correto. E logo após foi realizado o commit, ficou então tudo sincronizado.

76 4.2 APLICAÇÃO DO GIT

Nesta seção é proposto um teste de aplicação prática do sistema git, para fixar melhor o funcionamento não é utilizado nenhum cliente com GUI, caso necessite de algum cliente, isso é abordado no Apêndice A.