Pergunta

Eu estou procurando uma biblioteca diff C ou C ++. Eu sei que eu posso usar a ferramenta diff Unix em combinação com system ou exec, mas eu realmente quero uma biblioteca. Seria útil se a biblioteca poderia realizar correções, bem como, como a ferramenta patch Unix.

Foi útil?

Solução

Eu acho que eu encontrei uma boa solução, finalmente:

O DTL - Template Library Diff --- Tutorial

Ele suporta patch. Eu tive que digitar "diff.cpp" no Google para encontrá-lo. Esperemos que isso funciona!

Outras dicas

Parece que a Google Diff, Jogo e patch bibliotecas é o que você precisa.

Este é uma implementação de uma "solução a SES / LCS com o Hirschberg lineares refinamento espaço como descrito no seguinte publicação ":

E. Myers, `` Um O (ND) Diferença Algoritmo e suas variações '' Algorithmica 1, 2 (1986), 251-266. http://www.cs.arizona.edu/people/gene/ TRABALHOS / diff.ps

Encontrado lo na href="http://en.wikipedia.org/wiki/Diff" rel="nofollow noreferrer"> página .

Isso é apenas para encontrar um diff, porém, não aplicá-lo como um patch. Eu acho que a aplicação de um patch é realmente um problema mais difícil; Devido ao risco de conflitos. Seria necessário algum tipo de mecanismo de feedback controladores usuário, para resolver conflitos.

Há um que faz parte do Mercurial . Ela existe como algum código C que é projetado como uma extensão Python, mas provavelmente poderia ser extraído muito facilmente. Eu acredito que ele também pode fazer diffs binários.

Os arquivos .c relevantes são mercurial / bdiff.c , mercurial / mpatch.c e, possivelmente, mercurial / diffhelpers.c .

Subversion inclui uma biblioteca libsvn_diff .

Também praticamente impossível de encontrar no Google, verifica-se que Gnulib tem um diff módulo . Este parece ser suficiente para o que eu queria uma biblioteca diff para. Não parece ter um módulo de correção, no entanto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top