Quaisquer ferramentas de mesclagem de arquivos de texto?

2

Quando faço o controle de versão em arquivos de texto (ou látex), muitas vezes me deparo com o problema de que as ferramentas merge / diff são todas baseadas em linhas, enquanto os arquivos de texto não são. Isso leva a granularidade insuficiente: cada parágrafo com a menor alteração marcada como diferente ou, com quebra automática, todas as linhas após o refluxo do parágrafo marcadas como diferentes.

Existem ferramentas específicas para comparar / mesclar arquivos de texto que evitam esse problema? Idealmente, isso me permitiria reverter em um nível de granularidade de frase ou sub-sentença e agrupar de forma inteligente as alterações.

Estou ciente de que o latex-diff existe e isso pode ser ótimo para visualizar as alterações. Eu quero uma ferramenta que funcione na fonte.

EDIT: Como todos os programas de mesclagem parecem ser baseados em linha (o wdiff é bom, mas sem números de linha e a funcionalidade mesclar não é apropriada) uma solução temporária seria um programa de mesclagem que facilitasse a seleção parte de uma linha para reverter (ou até mesmo facilitar a inserção e edição da linha manualmente durante a mesclagem). Atualmente estou usando Filemerge no os x que não parece permitir isso (idealmente seria GUI como eu não usá-lo o suficiente para garantir a memorização de pressionamentos de teclas).

Ainda prefiro algo especificamente projetado para permitir isso. Eu não acho que seria tão difícil.

    
por Peter Gerdes 26.12.2017 / 02:09

1 resposta

0

Todas as ferramentas de comparação gráfica que conheço (Meld, KDiff3, Kompare, vimdiff) são baseadas em linhas de trabalho, pois são ferramentas de desenvolvimento. No entanto, vejo a possibilidade de ajustá-los para que você possa usá-los para o seu propósito. Depende se você pode fazer sem as quebras de linha (novas linhas, ASCII 10) em seus arquivos de origem dentro de parágrafos, ou é capaz de removê-los temporariamente para a comparação e reformatar a fonte mais tarde.

Neste caso, você pode comparar os textos mesclando os parágrafos em uma única linha. Meld , por exemplo, tem uma configuração para linewrapping para melhor legibilidade (sem quebras de linha duras inseridas), e também a possibilidade de definir filtros de texto que permitem ignorar conteúdo irrelevante, e. g. formatando tags / comandos. Eu fiz um pequeno exemplo de HTML para mostrar a você o que estou pensando:

O regex do Python para tags HTML é <.*?> (bruto, generalizador e muito básico).

    
por 27.12.2017 / 20:21