Qualsiasi motore di confronto / fusione di testo decente per .NET?


Answers

Penso che "Generic - Reusable Diff Algorithm in C #" su Codeproject sia il migliore che si possa trovare come motore .NET per diff / patch / merge. Ho realizzato un progetto da solo con esso e si adatta alle mie esigenze con la maggior parte degli scenari. Ci sono uno o due scencario nel caso peggiore quando l'algoritmo ha reso il file di patch più grande di quanto non debba essere. Ma nella maggior parte dei casi funziona bene per me (file di testo con una dimensione> 30 MB).

Attualmente sto testando un altro progetto Codeproject che puoi trovare qui: http://www.codeproject.com/KB/applications/patch.aspx Sta usando alcune DLL di Microsoft per il patching, quindi sembra interessante. Ma quelle DLL non sono gestite e questo progetto è solo una specie di wrapper per questo. Ma forse può aiutarti

Modifica: ho appena trovato un altro progetto, DiffPlex : http://diffplex.codeplex.com/ E ' una combinazione di una libreria di diffusione .NET con un visualizzatore diff Silverlight e HTML . Come indicato there , DiffPlex è la libreria che CodePlex sfrutta per generare le differenze tra i file.

Question

Requisiti:

  • gratuito, preferibilmente open-source
  • implementato in uno dei lang gestiti .NET

Google ha trovato questi:

MODIFICARE:

Nessuna app per favore, solo le librerie.




Nessuna delle risposte finora (tranne forse il riferimento a GitSharp) riguarda l'unione a 3 vie, quindi nel caso in cui aiuti chiunque abbia recentemente realizzato l'implementazione javascript diff3 di Tony Garnock-Jones (dal progetto synchrotron , basato su Hunt e McIlroy 1976) a C #.

È una semplice porta a file singolo di metodi di fusione diff e a tre vie, ma è l'algoritmo standard e finora funziona molto bene per me: https://gist.github.com/2633407