Analisei as respostas para essa pergunta e, infelizmente, nenhuma delas me ajudou até agora.
Para não se perder, a segunda edição do C # in Depth está agora em edição de cópia. Quero poder ver o que o editor de cópias fez com muita facilidade, para poder rejeitar ou aceitar as alterações dele.
Estamos usando uma forma modificada de docbook, mas estou feliz o suficiente olhando a fonte XML bruta. Tudo bem até agora - exceto que, quando o editor de cópias faz uma alteração, isso pode alterar a quebra de linha. Então, algo que costumava ler:
<para>Foo bar baz
second line</para>
agora lê
<para>Foo bar grontle
baz second line</para>
Agora, a verdadeira mudança aqui é a inserção de "grontle". Eu não me importo que o "baz" tenha mudado da primeira linha para a segunda linha, mas todas as ferramentas diff que eu já vi fazer.
Percebo que uma opção seria reformatar o documento inteiro (ou possivelmente apenas parágrafos inteiros) em linhas únicas ... mas isso é realmente difícil de ler, porque as ferramentas diff não envolvem quando estão sendo exibidas.
Tenho certeza de que posso gerenciar com as ferramentas que tenho, mas se alguém souber de algo melhor, ficarei muito feliz em ouvir sobre isso. Eu suspeito que meus editores também.
(Incluí a tag do Windows aqui porque eu realmente preciso que ela esteja disponível no Windows. Gostaria de saber sobre qualquer software que não seja o Windows também, mas apenas no caso de eu poder ajudar a construí-lo no Windows.
fonte
Minha solução é com além da comparação . (uma ferramenta muito mais poderosa)
Então começamos vendo o problema.
O BC possui uma função especial de análise XML: (já possui função XML, mas não com pré-análise - que é Ordenada e Arrumada )
então vamos a http://www.scootersoftware.com/download.php?zz=kb_moreformats_alt
e agora -
espero que você o use na próxima edição do C # em profundidade
ps Se o texto nas imagens for muito pequeno, basta clicar na imagem para carregar as originais.
fonte
Sou o autor de uma ferramenta de difusão XML (software comercial) que deve fazer o trabalho (e mais alguns recursos). Há uma versão de teste (limitada a arquivos Xml de 100 KBs no máximo) para download aqui:
http://xmldifftool.com/download_en.html
Uma breve introdução também está disponível aqui:
http://xmldifftool.com/xtcmanual_en.html
fonte
Eu tive esse mesmo problema em uma empresa há pouco tempo. Eles queriam encontrar uma verdadeira "diferença de XML" e não parece haver soluções completas por aí.
A solução mais fácil é executar um script de impressão bonita no XML primeiro para normalizar os finais de linha e espaçamento e, em seguida, executar a ferramenta diff de escolha (o WinMerge é bom para o Windows). Isso elimina grande parte do flotsam que a maioria dos difftools lhe lançará do XML, e é realmente fácil criar um script.
fonte
O SD Smart Differencer compara documentos com base na estrutura, em oposição ao layout real.
Existe um XML Smart Differencer. Para XML, isso significa ordem de correspondência de tags e conteúdo. Observe que a sequência de texto no fragmento específico que você indicou era diferente. (Atualmente, ele não entende a noção XML do texto em que o espaço em branco é normalizado versus significativo, mas suspeito que isso não o prejudique muito).
fonte
@ Jon Skeet: Você mencionou na sua pergunta que as ferramentas diff não são quebradas quando exibidas.
vimdiff
(também disponível no Windows viagvim
) permite agrupar os arquivos xml exibidos:window set wrap
. Link de referência .Além disso, você pode executar
:diffupdate
para atualizar as diferenças.fonte