Capítulo 1. Introdução

Quando duas ou mais pessoas estiverem a trabalhar num ficheiro e o passam um para o outro e vice-versa, torna-se difícil saber que variações foram feitas sobre uma versão nova, ou se deseja copiar um ficheiro. Se abrir a cópia nova e o original, lado-a-lado, na aplicação usada para o criar, será uma solução possível mas trabalhosa, morosa e sujeita a erros. Este é o caso em que é necessário e útil um programa para mostrar as diferenças.

Como seria de esperar, um nome apropriado para um programa destes seria diff (diminutivo de diferença em inglês). Como acontece, o programa 'diff' está instalado na maioria dos sistemas baseados em Linux® e é usado exactamente para este fim. Os programadores usam normalmente o 'diff', como ferramenta da linha de comandos, para mostrar as diferenças entre versões de ficheiros de código. Contudo, a utilização do 'diff' não está limitada à apresentação das diferenças nos ficheiros de código-fonte, podendo ser usada em vários tipos de ficheiros baseados em texto.

A utilização do 'diff' na linha de comandos poderá ser confusa, a aprendizagem da sintaxe e a descodificação do resultado poderão assustar a maioria das pessoas. Aí é onde o Kompare aparece em jogo. Ao oferecer uma interface gráfica para o programa 'diff', a interface mostra os ficheiros de origem e destino lado-a-lado, com todas as diferenças realçadas automaticamente. Neste ponto de partida, as alterações num ficheiro poderão ser aplicadas sequencialmente ao outro, usando uma base selectiva e controlada. Nem todas as alterações precisam de ser aplicadas e, se quiser aplicar uma alteração, esta poderá sempre ser 'ignorada' ou anulada. Quando todas as alterações necessárias tiverem sido aplicadas, estas poderão ser gravadas e aparecerão de forma normal, como acontece na aplicação usada para criar o ficheiro.

Para além de mostrar as diferenças entre um ficheiro de origem e um de destino, o Kompare pode ser usado para criar e ver um ficheiro especial, chamado um ficheiro 'diff'. Este ficheiro captura as diferenças entre as duas fontes para um único ficheiro, que poderá então ser usado para ver e aplicar as alterações a outra cópia qualquer do ficheiro. Por exemplo, se duas pessoas estiverem a editar um documento, a primeira pessoa quer fazer alterações e enviar apenas essas alterações à segunda pessoa. Normalmente, a primeira pessoa iria enviar uma cópia completa do documento modificado para a segunda pessoa, que teria depois de comparar o documento modificado, lado-a-lado com a versão não-modificada. O processo para tal é muito semelhante ao descrito nos parágrafos anteriores. Com o Kompare, a primeira pessoa iria fazer uma cópia local do ficheiro a ser modificado, faria as alterações e depois iria comparar o original e a cópia modificada. Agora, ao usar o Kompare, poderá criar um ficheiro 'diff' que captura apenas as alterações feitas. Este poderá ser enviado para a segunda pessoa, em vez de enviar um ficheiro inteiro com os dados e as alterações.

Se usar o Kompare, a segunda pessoa poderá ver o ficheiro 'diff', compará-lo com a cópia local do documento e aplicar as alterações feitas pela primeira pessoa. Como tal, o processo poderá funcionar assim para várias versões do documento, onde cada pessoa faz as alterações, cria os ficheiros 'diff', distribui-os e aplica-os. Este processo é conhecido em inglês como patching, um termo retirado do programa patch, que é outra ferramenta da linha de comandos, desenhada especificamente para aplicar os ficheiros do 'diff'.

Acontece por vezes que existam várias pessoas a editar um ficheiro ao mesmo tempo. Nesta situação, é provável que as pessoas façam alterações no documento exactamente na mesma linha. Isto gera um problema porque, sem o cuidado devido, as pessoas poderão estar a sobrepor o trabalho das outras, à medida que aplicam os ficheiros de 'diff' que recebem. Felizmente, os programadores dos programas 'diff' e 'patch' tiveram isso em consideração e, deste modo, estas ferramentas não irão aplicar essas alterações sem alguma intervenção manual. Quando se atinge este estado, este é referido como um conflito. O Kompare irá mostrar os conflitos, de modo que os possa resolver manualmente, decidindo as alterações que deverão ser aplicadas a um dado ficheiro.

O Kompare também é um programa óptimo para comparar as alterações de ficheiros ao nível da pasta. Quando for usado para comparar pastas, o Kompare examina recursivamente as sub-pastas e o conteúdo dos seus ficheiros, à procura de diferenças. Neste caso, cada um dos ficheiros em que foram encontradas diferenças é aberto automaticamente e listado pelo Kompare, onde é possível navegar facilmente pelos vários ficheiros.