Saturday, July 25, 2009Meld Otima ferramenta para Merge e Diff para controladores de versão
Buenas galera.
Quem nunca passou pelo trabalho de efetuar Merge entre versões de projeto em um repositório de um controlador de versão? Uma tarefa muitas vezes árdua principalmente se quanti precisamos unir alterações entre dois branches em um só.
Vou postar aqui uma ferramenta livre desenvolvida em Python para Linux chamada MELD que efetua a comparação entre dois repositórios ou dois arquivos, há a possibilidade de se comparar até tres diretórios ou arquivos ao mesmo tempo e mesclar as alterações em uma versão apenas.
Primeiramente vamos istalar a ferramenta para isso abra seu console e digite o comando abaixo:
sudo apt-get install meld
Após o processo de instalação ter sido concluido, abra a ferramenta com o comando:
sudo meld
Porque abrir como sudo?
Se você tiver os repositórios controlados pelo Subversion ou CVS, necessitará de permissão de root para alterar os mesmos.
Iremos demonstrar o trabalho com merge em um projeto com varios arquivos, seleciona os diretorios conforme imagem abaixo:
Apos isso quando clicado em OK, o MELD irá fazer uma análise de todos os arquivos e diretorois dos dois projetos e irá nos expor o resultado.
Os arquivos marcados em vermelho são arquivos com conflito que precisam ser resolvidos, os arquivos marcados em verde são arquivos novos, onde este arquivo está em um projeto e em outro não.
Para resolver um conflito entre dois arquivos basta dar um duplo clique sobre o mesmo que o Meld mostrará um editor onde você pode efetuar as alterações entre os dois arquivos a fim de deixá-los iguais conforme tela abaixo:
Para jogar alterações de um lado para o outro basta clicar na seta do texto marcado em verde.
Quando o merge estiver concluido dos dois arquivos basta salvar ambos e fechar o editor de comparação de arquivos.
Para arquivos novos marcados em verde, basta clicar sobre o mesmo com o botão direito e selecionar "Copy to Left" ou "Copy to Right",
e o Meld irá copiar o arquivo para o outro projeto.
Para copiar diretórios inteiros basta efetuar o mesmo passo que adotado para arquivos.
O Meld mostra toda a estrutura de arquivos e diretórios que possuirem alguma diferença com o outro projeto comparado.
Após concluir todo o processo basta fechar o Meld e abrir seu projeto com sua IDE, e efetuar o commit no repositório.
Importante: O Meld não altera os arquivos de controle do seu gerenciador de versão, então quando sincronizado com seu repositório o SNV ou CVS identificará as alterações nos arquivos e você poderá efetuar o commit normalmente. O Meld não trabalha necessáriamente com projetos ou arquivos que estejam em seu gerenciador de versão.
Ferramenta simples mas de grande ajuda em caso de grandes Merges e Diffs, ja salvou minha pele várias vezes.
Espero que possa ajudar você de alguma forma.
Abraços e até um próximo post, dúvidas? ronaldo@ronaldorigoni.com.br
Português
Italiano
English





