¿Algún motor decente de diferencia / combinación de texto para .NET? [cerrado]

StackOverflow https://stackoverflow.com/questions/138331

  •  02-07-2019
  •  | 
  •  

Pregunta

Requisitos:

  • libre, preferiblemente de código abierto
  • implementado en uno de los lenguajes gestionados por .NET

Google encontró estos:

EDITAR:

No hay aplicaciones, solo bibliotecas.

¿Fue útil?

Solución

Puede capturar el componente COM que usa el Diff de Google / Parche / Partido . Funciona desde .NET.

Actualización, 17 de octubre de 2010 : el Google El código Diff / Patch / Merge se ha portado a C #. El componente COM aún funciona, pero si viene de .NET, querrá usar el puerto .NET directamente.

Otros consejos

Creo que el " genérico - algoritmo de diferencia reutilizable en C # " en Codeproject es lo mejor que puedes encontrar como motor .NET para diff / patch / merge. Hice un proyecto por mi cuenta con él y se ajusta a mis necesidades con la mayoría de los escenarios. Hay uno o dos scencarios en el peor de los casos cuando el algoritmo hizo que el archivo de parche fuera más grande de lo que debe ser. Pero en la mayoría de los casos funciona bien para mí (archivos de texto con un tamaño de > 30 MB).

Actualmente estoy probando otro Codeproject-Project que puedes encontrar aquí: http: // www.codeproject.com/KB/applications/patch.aspx Está usando algunas DLL de Microsoft para parchear, por lo que parece interesante. Pero esas DLL no están administradas y este proyecto es solo una especie de envoltorio para ellas. Pero quizás pueda ayudarte

Editar: Acabo de encontrar otro proyecto, DiffPlex : http://diffplex.codeplex.com/ Es una combinación de una biblioteca difusa .NET con un visor de diferencias Silverlight y HTML . Como se indica en allí , DiffPlex es la biblioteca que CodePlex aprovecha para generar las diferencias de archivos.

GitSharp incluye un motor de diferencias basado en las diferencias de Meyers. Eche un vistazo a la demostración que implementa un sencillo visor wpf diff basado en la colección Diff.Sections: http://www.eqqon.com/index.php/GitSharp#GitSharp.Demo

Ninguna de las respuestas hasta ahora (excepto posiblemente la referencia de GitSharp) se relaciona con la combinación de 3 vías, por lo que en caso de que ayude a alguien, recientemente porté la implementación de javascript diff3 de Tony Garnock-Jones (de sincrotrón , basado en Hunt y McIlroy 1976) a C #.

Es un puerto simple de un solo archivo de métodos de combinación de diferencias y de tres vías, pero es el algoritmo estándar y hasta ahora me funciona muy bien: https://gist.github.com/2633407

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top