Tout bon texte diff/moteur de fusion .NET?
Exigences:
- libre, de préférence en open-source
- mis en œuvre dans un de la .NET géré langs
Google trouvé ces:
- Un Générique, Réutilisable Diff
Algorithme sur codeproject - Un O(ND) Différence de l'Algorithme pour C#
- Diff/Merge/Patch Library for C#/.NET par Joshua Tauberer
EDIT:
Pas les applications s'il vous plaît, seules les bibliothèques.
- Ce fil n'a pas été victimes de la traite dans un tout, mais qui open source diff projet avez-vous finir par aller avec? Je suis à la recherche de la même chose et en plus les bibliothèques répertoriées je n'ai pas trouvé grand chose (déçu que si peu a changé en 2 ans...).
- marr75: ici, vous allez [Crédit à Cheeso / Brian (voir réponses ci-dessous)]: "La Google Diff/Patch/Fusion de code a été porté à C#. Le composant COM fonctionne toujours, mais si vous venez de .NET, vous aurez envie de l'utiliser .NET port directement."
- Je suis d'accord cette réponse a été très utile, il est demandé un moteur ou d'un algorithme très précis problème de programmation, et j'ai nominé pour les rouvrir.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez saisir le composant COM qui utilise Google Diff/Patch/Match. Il travaille à partir de .NET.
Mise à jour, octobre 2010 17: Le Google Diff/Patch/Fusion de code a été porté à C#. Le composant COM fonctionne toujours, mais si vous venez de .NET, vous aurez envie de l'utiliser .NET port directement.
netstandard1.0
et un poids très léger. Vous pouvez facilement intégrer dans votre application WPF utilisant leRichTextBox
comme ceci: github.com/halllo/WpfDiffInstall-Package Diff.Match.Patch
Diff.Match.Patch
est en fait plus F#-centric, et dépend de F# bibliothèques de Base.Je pense que le "Générique Réutilisable Diff Algorithme en C#" sur Codeproject est le meilleur que vous pouvez trouver aussi un .NET-Moteur de comparaison/fusion des correctifs. J'ai fait un projet sur mon propre avec elle et qu'elle correspond à mes besoins avec la plupart des scénarios. Il y a un ou deux pour le pire des cas scencario lorsque l'algorithme fait le patch-fichier de plus de il être. Mais dans la plupart des cas, il fonctionne très bien pour moi (fichiers texte avec une taille de >30 MO).
Je suis en train de tester un autre Codeproject-Projet, vous pouvez le trouver ici: http://www.codeproject.com/KB/applications/patch.aspx
C'est à l'aide de certaines Dll de Microsoft pour les patchs, il semble donc intéressant. Mais ces Dll ne sont pas gérés, et ce projet n'est qu'une sorte de wrapper pour elle. Mais peut-être cela peut vous aider à
Edit:
Viens de trouver un autre projet, DiffPlex: http://diffplex.codeplex.com/
C'est une combinaison d'une .NET de Comparaison de la Bibliothèque avec à la fois une Silverlight et HTML visualisateur. Comme l'a déclaré il y, DiffPlex est la bibliothèque qui CodePlex les leviers à générer les diff de fichiers.
GitSharp comprend un diff moteur en fonction de meyers diff. Jetez un oeil à la démo qui met en œuvre un simple wpf visualisateur basé sur le Diff.Les articles de la collection: http://www.eqqon.com/index.php/GitSharp#GitSharp.Demo
Aucune réponse à ce jour (sauf peut-être la GitSharp de référence) qui traitent de l'3-voie de fusion, de sorte que dans le cas où il permet à quelqu'un que je récemment porté à Tony Garnock-Jones, javascript diff3 de mise en œuvre (à partir de la synchrotron projet, basé sur la Chasse et McIlroy 1976) en C#.
C'est simpliste fichier unique port de diff et trois méthodes de fusion, mais c'est le standard de l'algorithme et pour l'instant fonctionne très bien pour moi: https://gist.github.com/2633407