Português (Brasil)

Ferramentas de texto e do dia a dia · Kit de ferramentas de texto

Explicação da diferença de texto baseada em linha: por que uma palavra alterada sinaliza a linha inteira

· Como funciona

diferença de texto comparação de documentos edição

Duas listas de cláusulas alinhadas por linha, com uma linha removida e uma linha adicionada destacada
Ilustração vetorial original ToolAcre

Explica o que uma comparação baseada em linhas compara, por que ela relata uma edição de uma palavra como uma linha substituída e como preparar dois textos para que a comparação destaque o que realmente mudou.

A diferença que diz que tudo mudou – como um parágrafo refeito transforma uma edição em dezenas de linhas sinalizadas

Um administrador de contratos pode alterar uma obrigação em uma cláusula, colar duas versões de documentos em uma comparação e ver um grande bloco relatado em torno dessa edição. A causa usual não é que todas as frases tenham mudado. É que a cópia de um processador de texto refluiu o parágrafo, movendo as palavras posteriores para diferentes linhas físicas.

Uma comparação de linha só pode alinhar as unidades que recebe. Se a versão A colocar um parágrafo depois de “fornecedor” e a versão B colocar um parágrafo depois de “o fornecedor deve”, as linhas restantes não corresponderão mais exatamente, mesmo quando a maior parte do texto for idêntica. Restaure os limites deliberados das linhas antes de decidir que o documento contém dezenas de revisões substanciais.

O que uma diferença de linha compara - linhas inteiras como unidades, combinadas por igualdade, com inserções e exclusões entre elas

ToolAcre divide cada entrada em linhas e compara essas strings completas quanto à igualdade. Ele constrói uma tabela de subsequência comum mais longa, que identifica o maior conjunto ordenado de linhas idênticas compartilhadas por ambos os lados. O material entre essas âncoras é então emitido como linhas removidas da esquerda ou adicionadas à direita.

A ordem é tão importante quanto o texto. Uma cláusula inalterada pode ancorar o alinhamento apenas onde ele aparece em sequência; movê-lo para outro lugar não é representado por uma operação de movimentação especial. O resultado é um script de edição mínimo orientado por linhas, não uma interpretação do significado jurídico ou uma tentativa de emparelhar frases semelhantes por tópico.

Por que uma palavra sinaliza uma linha inteira — a unidade de comparação é a linha, então qualquer diferença a substitui

Mudar “pode” para “deve” torna a linha completa desigual. Nesta implementação, essa linha é emitida como removida do lado antigo e adicionada ao novo lado; a função principal não emite uma linha alterada para a substituição de uma palavra. As duas linhas descrevem a substituição na granularidade da linha, em vez da exclusão de toda a ideia.

Leia essas linhas adjacentes juntas. Seu texto compartilhado ajuda a pessoa a localizar o termo editado, mas o algoritmo mostrado na fonte não destaca os caracteres dentro deles. Esta distinção explica por que o resultado pode ser preciso e ao mesmo tempo parecer amplo: sua menor unidade de comparação reportável é uma linha, independentemente de quão pequena foi a edição.

Por que uma palavra produz uma linha removida e uma linha adicionada nesta implementação

Uma comparação em nível de palavra simboliza a prosa com mais precisão e pode isolar “pode” versus “deve”. Uma comparação em nível de caractere pode restringir ainda mais a exibição, o que é útil para pontuação ou ortografia. Essas abordagens também criam mais fragmentos e exigem regras sobre os limites dos tokens, de modo que sua aparente precisão pode produzir uma revisão mais intensa.

A comparação de linhas é adequada para listas, blocos de configuração, logs e cláusulas quando cada linha já representa um item significativo. Fornece aos revisores um contexto estável e preserva a ordem sem fingir que entende as frases. Escolha uma ferramenta mais refinada quando a revisão precisar identificar edições em parágrafos longos; não espere que esta rota fabrique esse detalhe.

Preparar textos para uma boa diferenciação - uma frase ou item por linha, espaços em branco cortados e finais de linha consistentes

Prepare ambas as versões de forma que uma frase, cláusula numerada ou item de lista ocupe cada linha. Remova linhas em branco acidentais e corte os espaços iniciais ou finais quando essas diferenças não tiverem significado. Mantenha o recuo intencional quando for importante, porque a própria função de comparação testa sequências de linhas exatas e não normaliza os espaços em branco antes das verificações de igualdade.

O esboço exige finais de linha consistentes, mas `toLines` já aceita CRLF, LF e um CR solitário como separadores. A consistência mais importante é semântica: itens equivalentes devem começar e terminar em locais equivalentes. Evite a quebra manual na largura da página, pois uma margem alterada pode então ser mascarada como conteúdo alterado.

Prepare unidades de linha estáveis; misto CRLF, LF e CR solitário já são aceitos

Suponha que a lista antiga tenha três linhas separadas: “1. Entregar até sexta-feira.”, “2. O comprador pode inspecionar os registros.” e “3. O pagamento vence em 30 dias”. A revisão altera apenas a linha do meio para "2. O comprador deve inspecionar os registros." Mantenha todas as três cláusulas em suas próprias linhas antes de executar a comparação.

A primeira e a terceira linhas permanecem âncoras iguais. A cláusula intermediária antiga aparece como removida e a cláusula intermediária revisada aparece como adicionada, deixando o administrador com um par focado para revisar. Se as mesmas cláusulas fossem coladas como prosa refluído, uma diferença de envolvimento poderia quebrar essas âncoras e ampliar o aparente conjunto de mudanças.

O que isso não cobre — mesclagens de três vias, detecção de blocos movidos e diferenças de documentos formatados

Esta comparação não executa uma mesclagem de três vias, portanto não pode reconciliar dois descendentes editados com uma versão base compartilhada. Também não possui classificação de bloco movido: a realocação de uma cláusula pode aparecer como uma remoção em sua posição antiga e um acréscimo em sua nova posição, mesmo quando seu texto permanece intacto.

Documentos formatados introduzem outro limite. Fontes, alterações controladas, tabelas, comentários e layout não são representados em strings simples passadas para `diffLines`. Extraia e estruture primeiro o texto relevante, mantendo os originais para revisão formal. Uma comparação de texto útil complementa os controles de documentos; não os substitui.

Conclusão: a diferença do Text Toolkit é baseada em linhas por design; prepare a entrada e ela mostra exatamente quais itens foram alterados

Uma diferença de linha é mais informativa quando cada linha contém uma decisão revisável. ToolAcre alinha linhas exatas, preserva sua ordem e relata materiais sem correspondência como adições ou remoções. Esse design é previsível: uma edição de uma palavra afeta toda a linha, enquanto linhas idênticas ao seu redor fornecem as âncoras que mantêm o resultado compacto.

Antes de comparar listas de cláusulas, defina os limites, corte espaços de borda irrelevantes e remova linhas vazias que não acrescentam nenhuma estrutura. Em seguida, abra a comparação de texto e inspecione as linhas adjacentes removidas e adicionadas como uma substituição. Uma boa preparação não altera o contrato; faz com que o relatório baseado em linhas do algoritmo corresponda às unidades com as quais o revisor realmente se preocupa.