Exigences:
- gratuit, de préférence open-source
- implémenté dans l'un des langages gérés .NET
Google a trouvé ceux-ci:
- Un algorithme de différence générique et réutilisable sur codeproject
- Un algorithme de différence O (ND) pour C #
- Diff / Merge / Patch Library pour C # /. NET par Joshua Tauberer
ÉDITER:
Pas d'applications s'il vous plaît, seulement des bibliothèques.
Réponses:
Vous pouvez récupérer le composant COM qui utilise le Diff / Patch / Match de Google . Cela fonctionne à partir de .NET.
Mise à jour, 17 octobre 2010 : le code Google Diff / Patch / Merge a été porté en C #. Le composant COM fonctionne toujours, mais si vous venez de .NET, vous voudrez utiliser le port .NET directement.
la source
netstandard1.0
un poids très léger. Vous pouvez facilement l'intégrer dans votre application WPF en utilisantRichTextBox
ce qui suitInstall-Package Diff.Match.Patch
Je pense que le "Generic - Reusable Diff Algorithm in C #" sur Codeproject est le meilleur que vous puissiez trouver en tant que .NET-Engine pour diff / patch / merge. J'ai réalisé mon propre projet avec lui et il répond à mes besoins avec la plupart des scénarios. Il y a un ou deux scénarios du pire des cas lorsque l'algorithme a rendu le fichier de correctif plus volumineux que nécessaire. Mais dans la plupart des cas, cela fonctionne très bien pour moi (fichiers texte d'une taille> 30 Mo).
Je teste actuellement un autre projet Codeproject que vous pouvez trouver ici: http://www.codeproject.com/KB/applications/patch.aspx Il utilise des DLL de Microsoft pour le correctif, donc cela semble intéressant. Mais ces DLL ne sont pas gérées et ce projet n'est qu'une sorte de wrapper pour cela. Mais peut-être que ça peut t'aider
Edit: Je viens de trouver un autre projet, DiffPlex : http://diffplex.codeplex.com/ C'est une combinaison d'une bibliothèque différentielle .NET avec un visualiseur de différences Silverlight et HTML . Comme indiqué ici , DiffPlex est la bibliothèque que CodePlex exploite pour générer les différences de fichiers.
la source
GitSharp inclut un moteur de diff basé sur meyers diff. Jetez un œil à la démo qui implémente un simple visualiseur de différences wpf basé sur la collection Diff.Sections: http://www.eqqon.com/index.php/GitSharp#GitSharp.Demo
la source
Aucune des réponses à ce jour (sauf peut-être la référence GitSharp) ne traite de la fusion à 3 voies, donc au cas où cela aiderait quelqu'un, j'ai récemment porté l'implémentation javascript diff3 de Tony Garnock-Jones (du projet synchrotron , basé sur Hunt et McIlroy 1976) en C #.
C'est un port simpliste à fichier unique de méthodes de fusion différentielle et à trois voies, mais c'est l'algorithme standard et jusqu'à présent fonctionne très bien pour moi: https://gist.github.com/2633407
la source