Manuals

Ver Diferenças

Um dos requisitos mais comuns no desenvolvimento de projectos é poder ver o que foi alterado. Tu podes querer ver as diferenças entre duas revisões do mesmo ficheiro, ou as diferenças entre dois ficheiros diferentes. O TortoiseSVN fornece uma ferramenta incorporada para ver as diferenças de ficheiros de texto, chamada TortoiseMerge. Para ver as diferenças de ficheiros de imagem o TortoiseSVN também tem uma ferramenta, chamada TortoiseIDiff. É claro que se quiseres, podes usar o teu programa de comparação favorito.

Diferenças em ficheiros

Alterações locais

Se pretendes ver que alterações tu efectuastes na tua cópia de trabalho, usa apenas o menu de contexto do explorador e selecciona TortoiseSVNComparar.

Diferenças para outro ramo/etiqueta

Se pretendes ver o que foi alterado no trunk (se estás a trabalhar num ramo) ou num ramo específico (se estás a trabalhar no trunk), podes usar o menu de contexto do explorador. Apenas mantêm a tecla Shift enquanto clicas com o botão direito no ficheiro. Então selecciona TortoiseSVNComparar com URL. Na caixa de diálogo seguinte, especifica o URL no repositório com o qual queres comparar o teu ficheiro.

Também podes usar o navegador de repositório e, seleccionar duas árvores para comparar, talvez duas etiquetas, ou um ramo/etiqueta com o trunk. O menu de contexto aí permite-te compará-las usando Comparar revisões. Ler mais em “Comparando Pastas”.

Diferenças de uma revisão anterior

Se pretendes ver a diferença entre uma revisão particular e a tua cópia de trabalho, usa a caixa de diálogo Registo de Revisões e seleccionar a revisão de interesse, então seleccionar a partir do menu de contexto Compara com cópia de trabalho.

Se pretendes ver as diferenças entre a última revisão submetida e a tua cópia de trabalho, assumindo que a tua cópia de trabalho não foi modificada, clica apenas com o botão direito no ficheiro. E selecciona TortoiseSVNComparar com revisão anterior. Então será executada uma comparação entra revisão antes da última submissão (como registada na tua cópia de trabalho) e a BASE de trabalho. Isto mostra a última alteração feita nesse ficheiro para o levar ao estado em que se encontra correntemente na tua cópia de trabalho. Não irá mostrar alterações mais recentes que a tua cópia de trabalho.

Diferenças entre duas revisões prévias

Se pretendes ver as diferenças entre duas revisões prévias, que já estão submetidas, usa a caixa de diálogo Registo de Revisões e seleccionar as duas revisões qye queres comprar (usando o modificador usual Ctrl). Então selecciona a partir do menu de contexto Comparar revisões.

Se fizeste isto a partir do registo de revisão de uma pasta, a caixa de diálogo Arquivos Alterados aparecerá mostrando a lista de ficheiros alterados nessa pasta. Ler mais em “Comparando Pastas”.

Todas as alterações feitas numa submissão

Se pretendes ver as alterações feitas em todos os ficheiros numa revisão particular numa vista única, podes usar o resultado da Comparação-Unificada (formato de remendo GNU). Isto mostra apenas as diferenças com algumas linhas de contexto. É mais difícil de ler que uma comparação visual de ficheiros, mas irá mostrar todas as alterações em conjunto. A partir da caixa de diálogo Registo de Revisões selecciona as revisões de interesse, e selecciona a partir do menu de contexto Mostrar alterações como uma comparação unificada.

Diferenças entre ficheiros

Se pretendes ver as diferenças entre dois ficheiros diferentes, podes faze-lo directamente no explorador seleccionando ambos os ficheirs (usando o modificador usual Ctrl). Então a partir do menu de contexto do explorador, selecciona TortoiseSVNComparar.

If the files to compare are not located in the same folder, use the command TortoiseSVNDiff later to mark the first file for diffing, then browse to the second file and use TortoiseSVNDiff with "path/of/marked/file". To remove the marked file, use the command TortoiseSVNDiff later again, but hold down the Ctrl-modifier while clicking on it.

Diferenças entre ficheiro/pasta da CT e um URL

Se pretendes ver as diferenças entre um ficheiro na tua cópia de trabalho e um ficheiro em qualquer repositório do Subversion, podes faze-lo directamente no explorador, sleeccionando o ficheiro e mantendo permido a tecla Shift enquanto clicas com o botão direito para aceder ao menu de contexto. Selecciona TortoiseSVNComparação com URL. Podes fazer a mesma coisa para uma pasta da cópia de trabalho. O TortoiseMerge mostra essas diferenças da mesma maneira que mostra um ficheiro de remendo - uma lista de ficheiros alterados que podes visualizar, um de cada vez.

Diferenças com informação de responsabilidade

Se pretendes ver não só as diferenças, mas também ver o autor, revisão e data dessa alteração, podes combinar os relatórios de comparação e responsabilização a partir da caixa de diálogo registo de revisões. Para mais detalhes consulta “Diferenças de responsabilidade”.

Diferenças entre pastas

As ferramentas embutidas fornecidas com o TortoiseSVN, não suportam a visualização de diferenças entre hierarquia de pastas. Mas se tiveres uma ferramenta externa que suporte essa funcionalidade, podes usa-la em substituição. Em “Ferramentas de Comparação/Integração” nós falamos sobre algumas que temos usado.

Se tens configurada uma ferramenta de comparação de terceiros, podes usar Shift quando seleccionares o comando de Comparação, para usar a ferramenta alternativa. Consulta “Preferências de Programas Externos” para descobrires como configurar outras ferramentas de comparação.

Opções de Fim-de-Linha e Espaços-Brancos

Por vezes no tempo de vida do projecto poderás alterar os fim-de-linha de CRLF para LF, ou poderás alterar a indentação de uma secção. Infelizmente isto irá marcar um grande número de linhas como alteradas, mesmo que não haja alterações de significado no código. Estas opções te irão ajudar a gerir essas alterações quando for altura de comparar e aplicar as diferenças. Irás ver essas definições nas caixas de diálogo Integrar e Responsabilizar, tal como nas definições para o TortoiseMerge.

Ignorar fins-de-linha exclui alterações que são exclusivamente devidas a diferenças no estilo de fim-de-linha.

Comparar espaços em branco inclui todas as alterações na indentação e espaços-em-branco em linha, como linhas adicionadas/removidas.

Ignorar alterações de espaços em branco exclui alterações que são exclusivamente devidas à mudança na quantidade ou tipo de espaços em branco, e.g. alterando a indentação ou alterando tabulações para espaços. Adicionando espaços em branco onde antes nenhum existia, ou remover completamente um espaço em branco, será sempre mostrado como uma alteração.

Ignorar todos os espaços em branco exclui todas as alterações relacionadas só com espaços em branco.

Naturalmente qualquer linha com conteúdo alterado será sempre incluída na comparação.

Comparando Pastas

Figura 4.29. A Caixa de Diálogo Comparar Revisões

A Caixa de Diálogo Comparar Revisões


Quando seleccionas duas árvores no interior do navegador de repositório ou quando seleccionas duas revisões de uma pasta na caixa de diálogo, podes Context menuComparar revisões.

Esta caixa de diálogo mostra a lista de todos os ficheiros que foram alterados, permitindo-te compará-los ou responsabiliza-los individualmente, usando o menu de contexto.

Podes exportar uma árvore de alterações, que é útil se necessitas de enviar a alguém a estrutura da árvore do teu projecto, mas contendo apenas aqueles ficheiros que foram alterados. Esta operação funciona só em ficheiros alterados, pelo que só precisas de seleccionar os ficheiros de interesse - o que normalmente significa todos - e depois Menu de contextoExportar selecção para.... Serás solicitado a introduzir uma localização para guardar a árvove de alterações.

Podes também exportar a lista de ficheiros alterados para um ficheiro de texto, usando Menu de contextoGuardar lista de ficheiros seleccionados para....

Se queres exportar a lista de ficheiros e também as acções (modificada, adicionada,removida), poderás faze-lo usando Menu de contextoCopiar selecção para a área de transferência.

O botão no topo permite-te alterar a direcção da comparação. Podes mostrar as alterações necessárias para ir de A a B, ou se preferires, de B a A.

Os botões com os números de revisão podem ser usados para mudar para um intervalo de revisões diferentes. Quando alteras o intevalo, a lista de itens, que diferem entre revisões, será actualizada automaticamente.

Se a lista de nomes de ficheiros é muito extensa podes utilizar a caixa de pesquisa, para assim reduzir a lista para ficheiros cujo nome contêm um texto específico. Ter em atenção que é usada uma pesquisa de texto simples, e se queres restringir a lista a ficheiro de fonte de C, deverás introduzir .c em vez de *.c.

Comparando Imagens usando o TortoiseDiff

Existem muitas ferramentas disponíveis para comparar ficheiros de texto, incluindo o nosso TortoiseMerge, mas com frequência estamos também à espera de ver como um ficheiro de imagem foi alterado. É por isso que criámos o TortoiseIDiff.

Figura 4.30. O leitor de diferenças de imagem

O leitor de diferenças de imagem


TortoiseSVNComparar para qualquer formato de imagem comum, irá arrancar o TortoiseIDiff para mostrar diferenças de imagem. Por defeito as imagens são mostradas lado-a-lado, mas em vez de, podes usar o menu Vista ou a barra de ferramentas para comutar para uma vista cima-baixo, ou se preferires podes sobrepor as imagens e fingir que estás a usar uma mesa de luz.

Naturalmente que podes aplicar mais ou menos zoom e posicionar a imagem. Podes também posicionar a imagem apenas por arrastá-la com o botão direito do rato. Se seleccionares a opção Ligar posições das imagens, os controlos de posicionamento (barras e rolar, roda do rato) ficaram ligados.

Uma caixa de informação de imagem mostra os detalhes sobre a mesma, como o tamanho em píxeis, resolução e nível de cor. Se esta caixa está a atrapalhar usa ViewImage Info para a esconder. Podes obter a mesma informação numa etiqueta, se mantiveres o rato sobre a barra de título da imagem.

Quando as imagens estão sobrepostas, a intensidade relativa das mesmas (mistura alfa) é controlada por um controlo de deslocamento no lado esquerdo. Podes clicar em qualquer ponto do controlo de deslocamento para configurares a mistura directamente, ou podes arrastá-lo para alterares a mistura iterativamente. Ctrl+Shift-Rodal para alterar a mistura.

O botão por cima do controlo de deslocamento alterna entre as misturas de 0% e 100%, e se efectuares duplo clique no botão, a mistura alterna automaticamente a cada segundo até clicares no botão novamente. Isto pode ser útil quando olhamos para pequenas alterações múltiplas.

Por vezes queres ver uma diferença em vez de uma mistura. Poderás ter os ficheiros de imagem de duas revisões de um placa de circuito impresso e querer ver quais as pistas que foram alteradas. Se desactivares o modo mistura alfa, a diferença irá ser mostrada como uma XOR dos valores de cor dos píxeis. Áreas inalteradas serão brancas e as alterações coloridas.

Comparando Documentos Office

Quando queres comparar documentos não-textuais normalmente terás de utilizar o software usado para criar o documento, já que ele entende o formato do ficheiro.Para as suites do Microsoft Office e Open Office, normalmente usadas, existe realmente algum suporte para a visualização das diferenças e o TortoiseSVN inclui scripts para os invocar com as definições correctas ao comparar ficheiros com essas extensões bem conhecidas. Podes verificar que extensões de ficheiros são suportadas e adicionar a tua própria indo à secção TortoiseSVNDefinições e clicar Avançado em Programas Externos

Problemas com o Office 2010

Se instalaste a versão do Office 2010 Click-to-Run e tentares compara documentos, poderás obter uma mensagem de erro do Windows Script Host como esta: ActiveX component can't create object: word.Application. Parece que terás de usar a versão do Office baseada em MSI para obteres a funcionalidade de comparação.

Ferramentas de Comparação/Integração

Se as ferramentas fornecidas não fazem o que precisas, experimenta uma das muitas ferramentas comerciais ou open-source disponíveis. Toda a gente tem as suas favoritas e esta lista está longe de estar completa, no entando, aqui estão algumas que poderás levar em consideração:

WinMerge

WinMerge is a great open-source diff tool which can also handle directories.

Perforce Merge

Perforce is a commercial RCS, but you can download the diff/merge tool for free. Get more information from Perforce.

KDiff3

KDiff3 é uma ferramenta de comparação gratuita que também suporta pastas. Podes descarregá-la em here.

SourceGear DiffMerge

SourceGear Vault is a commercial RCS, but you can download the diff/merge tool for free. Get more information from SourceGear.

ExamDiff

O ExamDiff padrão é freeware. Esta ferramenta suporta ficheiros mas não pastas. O ExamDiff Pro é shareware e adiciona um número de guloseimas que incluem, comparação de pastas e capacidades de edição. Em ambas edições existe suporte para unicode na versão 3.2 e superior. Podes descarregá-las em PrestoSoft.

Beyond Compare

Similar to ExamDiff Pro, this is an excellent shareware diff tool which can handle directory diffs and unicode. Download it from Scooter Software.

Araxis Merge

Araxis Merge is a useful commercial tool for diff and merging both files and folders. It does three-way comparison in merges and has synchronization links to use if you've changed the order of functions. Download it from Araxis.

Consultar “Preferências de Programas Externos” para mais informações em como configurar o TortoiseSVN para usar essas ferramentas.

TortoiseSVN homepage