Frage

Anforderungen:

  • , vorzugsweise Open-Source
  • implementiert in einer der .NET Managed langs

Google fand diese:

EDIT:

Noch keine Apps bitte nur Bibliotheken.

War es hilfreich?

Lösung

Sie die COM-Komponente, die die Google-Diff verwendet / Patch / Match . Es funktioniert von .NET.

Update 2010 17. Oktober : Der Google Diff / Patch / Code Merge zu C # portiert wurde. Die COM-Komponente funktioniert noch, aber wenn man von .NET kommen sind, werden Sie das .NET-Port direkt wollen verwenden.

Andere Tipps

Ich denke, die „Generic - Wiederverwendbare Diff-Algorithmus in C #“ auf Codeproject das Beste ist, Sie als .NET-Motor für diff / patch / Merge finden. Ich habe ein Projekt auf eigene Faust mit ihm und es passt meine Bedürfnisse mit den meisten Szenarien. Es gibt ein oder zwei Worst-Case-scencario wenn der Algorithmus die Patch-Datei größer als es sein muss. Aber in den meisten Fällen es funktioniert gut für mich (Text-Dateien mit einer Größe von> 30 MB).

ich zur Zeit testet ein anderes Codeproject-Projekt finden Sie hier: http: // www.codeproject.com/KB/applications/patch.aspx Es ist einige DLLs von Microsoft verwendet für das Patchen, so sieht es interessant. Aber diese DLLs sind nicht verwaltet und dieses Projekt ist nur eine Art Wrapper für sie. Aber vielleicht kann es Ihnen helfen

Edit: Nur ein weiteres Projekt gefunden, DiffPlex : http://diffplex.codeplex.com/ Es ist eine Kombination aus einer .NET Diffing Bibliothek sowohl mit einem Silverlight und HTML-Viewer diff . Wie bereits erwähnt dort , DiffPlex ist die Bibliothek, die CodePlex nutzen, um die Differentiale von Dateien zu erzeugen.

GitSharp enthält eine diff-Engine basiert auf meyers diff. Werfen Sie einen Blick auf die Demo, die einen einfachen wpf diff-Viewer auf dem Diff.Sections Sammlung basiert implementiert:

Keine der Antworten bisher (außer vielleicht die GitSharp Referenz) befassen sich mit 3-Wege-Zusammenführung, so im Fall hilft es jemand, den ich portierte vor kurzem Tony Garnock-Jones' Javascript diff3 Implementierung (von der Synchrotron Projekt, basierend auf Hunt und McIlroy 1976) auf C #.

Es ist ein stark vereinfachte Single-File-Port von diff und Drei-Wege-Methoden zusammenführen, aber es ist der Standard-Algorithmus und so funktioniert bisher sehr gut für mich: https://gist.github.com/2633407

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top