Como fazer merge de diferentes versões de código gerado pelo Windows AppStudio

Este artigo tem como objetivo mostrar uma solução para fazer merge de diferentes versões de código gerado pelo Windows App Studio, usando uma ferramenta gratuita chamada Source Tree.

Introdução

Windows App Studio é um serviço que permite qualquer pessoa, sem conhecimentos de programação, criar aplicações Windows Phone 8.1 e Windows Store apps em apenas 4 passos: ter uma ideia, adicionar conteúdo, escolher os estilos e por fim usar a aplicação. Este serviço fornece vários templates para ajudar a criar vários tipos de aplicações e com isto a criação das aplicações irá ser mais rápido.

Quando uma aplicação é criada no Windows App Studio é possível obter o código fonte para se poder correr a aplicação no simulador ou em qualquer dispositivo Windows Phone 8.1 ou Windows 8.1, com o objetivo de testar a aplicação, e ainda pode-se adicionar novas funcionalidades ou alterar alguma existente. Desta forma, um utilizador que pretenda alterar a aplicação no Visual Studio e no Windows App Studio vai ter que fazer a gestão de versões, uma vez que o Windows App Studio não permite fazer upload da versão alterada no Visual Studio.  E em alguns casos é necessário fazer o merge de versões para que a aplicação final contenha todas as alterações ao longo do tempo.

Neste artigo vamos ver uma solução que irá facilitar o processo de merge entre versões usando uma ferramenta gratuita, o Source Tree que disponibiliza uma GUI para gerir repositórios e será usado repositórios Git.

Descrição 

Suponhamos que criámos uma aplicação no Windows App Studio, usando o template Empty App, e de seguida geramos a aplicação (mesmo sem fazer qual alteração). Para ajudar na gestão de versões, digamos que iremos gerar a versão 1.0.0.0.  

App Studio: gerar aplicação

No fim da versão ser gerada é possível obter os packages para instalar nos dispositivos e é possível obter o código fonte, como podemos ver na imagem seguinte:

App Studio: obter código fonte  No fim de extrair o conteúdo obtido iremos ter algo do género:

App Studio: lista de ficheiros

Antes de efetuar alterações no Visual Studio é importante guardar esta versão no “controlo de versões”, mas para isso é necessário a ferramenta  Source Tree.

Depois de se instalar o Source Tree, deveremos abrir a aplicação para iniciarmos o processo de controlo de versões.

Source Tree: ecrã inicial

Para começar, devemos clicar em Clone/New e em seguida devemos clicar em  Create new repository, como podemos ver na imagem seguinte:

Source Tree: criar novo repositório

No fim de termos todos os campos preenchidos devemos clicar em Create para desta forma criamos o repositório Git na pasta pretendida, visualmente iremos ter uma representação gráfica como é descrita na imagem seguinte:

Source Tree: novo repositório

Se clicarmos em  Open in Explorer iremos abrir a pasta onde se encontra o repositório e de seguida devemos copiar o código obtido anteriormente para esta pasta, cujo o resultado será:

App Studio: adicionar código ao GitNota: A pasta .git é uma pasta escondida que não pode ser apagada, uma vez que é nesta pasta que o Git irá gerir as versões e o Source Tree irá usar isto através do Git.

Portanto, uma vez que já temos o código na pasta do repositório, ao voltarmos para a aplicação Source Tree, iremos ter algo do género:

Source Tree: novos ficheiros

O que significa que os ficheiros adicionados estão no estado Unstaged files e uma vez que pretendemos guardar a informação de todos os ficheiros, devemos passá-los para Staged file,  cujo resultado é apresentado na imagem seguinte:

Source Tree: stage files

Desta forma, podemos fazer um commit, que não é mais do que guardar uma versão do código.

Source Tree: commit

Para cada commit deve ser definido um comentário para descrever as alterações efetuadas, como podemos ver na imagem seguinte:

Source Tree: definir comentário

Depois do comentário estar definido devemos clicar em Commit e o resultado será algo do género:

Source Tree: resultado do commit

Neste momento a primeira versão do código está guardada e podemos proceder às alterações do código no Visual Studio.  Por exemplo, podemos alterar o Application Name e o Application Title definido no App.xaml, como podemos ver na imagem seguinte:

App Studio: editar aplicação

De seguida, no Source Tree,  podemos ver as alterações efetuadas:

Source Tree: modificações

Desta forma, iremos ter o ficheiro App.xaml no Unstaged files e do lado direito podemos ver as alterações do ficheiro, sendo que a vermelho é destacado a informação que foi removida e a verde a informação adicionada.

Efetuando um novo commit como foi descrito anteriormente, iremos ter

Source Tree: novo commit

Neste momento, temos a versão inicial do Windows App Studio e a alteração feita no Visual Studio. Voltemos agora ao  Windows App Studio para efectuar as seguintes alterações:

App Studio: adicionar feed

Depois destas alterações, podemos generar uma nova versão, digamos que será a versão  2.0.0.0:

App Studio: gerar aplicação novamente

Assim que a nova versão tiver disponível, devemos copiar o código para a pasta que contém o repositório e no Source Tree iremos ver todas as diferenças entre as duas versões:

Source Tree: diferenças entre versões

Em Unstaged files, os icons a amarelo significa que o ficheiro foi alterado e o icons a azul significa que o ficheiro foi adicionado. Selecionando cada ficheiro iremos ver do lado direito as diferenças (a verde teremos as novas alterações e a vermelho o que foi removido).

Por exemplo, se selecionarmos o ficheiro App.xaml, iremos ter:

Source Tree: diferenças num ficheiro

Para além de passarmos os ficheiros para Stage files, é possível fazê-lo passando apenas blocos ou linha de código, sendo também possível descartar as alterações.

Para o caso de querermos descartar um bloco de código, devemos clicar no Discard hunk, como podemos ver na seguinte imagem:

Source Tree: descartar modificação

Para o caso de descartar uma linha, devemos seleccioná-la e depois clicar em Discard lines, no entanto é preciso descartar a “verde” e a “vermelha”.

Source Tree: descartar modificação de uma linha

Desta forma, cada alteração pode ser seguida e é possível visualmente ver todas as alterações, e claro o utilizador pode aceitar e rejeitar consoante os requisitos da aplicação.

Conclusão

Em conclusão, usando uma ferramenta com o Source Tree é possível fazer merge de código de uma forma simple sem ser necessário conhecimento sobre versionamento de código.