Pergunta

Requisitos:

  • livre, de preferência open-source
  • implementado em um dos .NET conseguiu langs

O Google encontrou estes:

EDIT:

Nenhum aplicativo por favor, apenas bibliotecas.

Foi útil?

Solução

Você pode pegar o componente COM que usa Diff do Google / patch / Jogo . Ele funciona de .NET.

Atualização de 2010 17 de outubro : A Google diff / patch / code Mesclar foi portado para C #. O componente COM ainda funciona, mas se você está vindo de .NET, você vai quero usar a porta NET diretamente.

Outras dicas

Eu acho que o "Genérico - reutilizável Diff algoritmo em C #" na codeproject é o melhor que você pode encontrar como um .NET-Engine para diff / patch / merge. Eu fiz um projeto sobre a minha própria com ele e ele se encaixa as minhas necessidades com a maioria dos cenários. Há um ou dois pior caso scencario quando o algoritmo fez o arquivo de correção maior do que tem que ser. Mas, na maioria dos casos, ele funciona muito bem para mim (textfiles com um tamanho de> 30 MB).

Atualmente estou testando outra codeproject-Project você pode encontrar aqui: http: // www.codeproject.com/KB/applications/patch.aspx Ele está usando algumas DLLs do Microsoft para remendar, por isso parece interessante. Mas essas DLLs são gerenciado e este projecto só é algum tipo de invólucro para ele. Mas talvez ele possa ajudá-lo

Editar: Só encontrei outro projeto, DiffPlex : http://diffplex.codeplex.com/ É uma combinação de um diffing Biblioteca NET com tanto um Silverlight e HTML diff viewer . Como afirmado , DiffPlex é a biblioteca que aproveita CodePlex para gerar os diffs de arquivos.

GitSharp inclui um mecanismo de diff baseado em Meyers diff. Dê uma olhada na demo, que implementa um simples WPF diff viewer com base na recolha Diff.Sections: noreferrer http://www.eqqon.com/index.php/GitSharp#GitSharp.Demo

Nenhuma das respostas até agora (exceto, possivelmente, a referência GitSharp) lidam com 3-way merge, por isso, no caso de ajuda a ninguém que eu recentemente portado implementação diff3 javascript Tony Garnock-Jones' (do síncrotron projeto, baseado em Hunt e McIlroy 1976) para C #.

É um porto de métodos de mesclagem diff e três vias de arquivo único simplista, mas é o algoritmo padrão e até agora funciona muito bem para mim: https://gist.github.com/2633407

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