Domanda

Requisiti:

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

Google ha trovato questi:

EDIT:

Nessuna app, solo librerie.

È stato utile?

Soluzione

Puoi prendere il componente COM che utilizza Diff / Patch / Partita . Funziona da .NET.

Aggiornamento, 17 ott 2010 : Google Il codice Diff / Patch / Merge è stato portato su C #. Il componente COM funziona ancora, ma se provieni da .NET, vorrai utilizzare direttamente la porta .NET.

Altri suggerimenti

Penso che l'algoritmo Diff - Riutilizzabile in "C #" sia generico su Codeproject è il migliore che puoi trovare come motore .NET per diff / patch / merge. Ho realizzato un progetto da solo e si adatta alle mie esigenze con la maggior parte degli scenari. Ci sono uno o due scenari peggiori quando l'algoritmo ha reso il file patch più grande di quanto dovrebbe essere. Ma nella maggior parte dei casi funziona perfettamente per me (file di testo con una dimensione di > 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 le patch, quindi sembra interessante. Ma quelle DLL non sono gestite e questo progetto è solo una sorta di wrapper per questo. Ma forse può aiutarti

Modifica Ho appena trovato un altro progetto, DiffPlex : http://diffplex.codeplex.com/ È una combinazione di .NET Diffing Library con Silverlight e HTML viewer diff . Come indicato , DiffPlex è la libreria che CodePlex sfrutta per generare le differenze di file.

GitSharp include un motore diff basato su meyer diff. Dai un'occhiata alla demo che implementa un semplice visualizzatore diff wpf basato sulla raccolta Diff.Sections: http://www.eqqon.com/index.php/GitSharp#GitSharp.Demo

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

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top