Dowolny porządny silnik diff / merge for.NET? [zamknięte]
Wymagania:
- darmowy, najlepiej open-source
- zaimplementowane w jednym z zarządzanych przez. Net langów
Google znalazło Te:
- Ogólny, Wielokrotnego Użytku Diff Algorytm na codeproject
- algorytm różnicy O (ND) dla C #
- Biblioteka Diff/Merge / Patch dla C#/. Net by Joshua Tauberer
EDIT:
Żadnych aplikacji proszę, tylko biblioteki.
4 answers
Możesz pobrać komponent COM, który używa Google Diff / Patch / Match . Działa z .NET.
Update, 2010 Oct 17: Google diff/Patch/merge code został przeniesiony do C#. Komponent COM nadal działa, ale jeśli pochodzisz z. NET, będziesz chciał użyć portu. NET bezpośrednio.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:27
Myślę ,że "Generic - reusable Diff Algorithm in C#" w Codeproject jest najlepszym, jaki można znaleźć jako silnik. NET dla diff / patch / merge. Zrobiłem z nim projekt na własną rękę i pasuje do moich potrzeb w większości scenariuszy. Istnieje jeden lub dwa najgorsze scencario, gdy algorytm uczynił plik łaty większym, niż musi być. Ale w większości przypadków działa to dobrze dla mnie (pliki tekstowe o rozmiarze >30 MB).
Aktualnie testuję kolejny Codeproject-projekt, który znajdziesz tutaj: http://www.codeproject.com/KB/applications/patch.aspx Używa bibliotek DLL od Microsoftu do łatania, więc wygląda interesująco. Ale te biblioteki DLL są niezarządzane, a ten projekt jest tylko rodzajem opakowania dla niego. Ale może to ci pomoże
Edit: Właśnie znalazłem kolejny projekt, DiffPlex: http://diffplex.codeplex.com / Jest to kombinacja Biblioteki różnicującej.NET z przeglądarką zarówno Silverlight, jak i HTML diff viewer. Jak stwierdzono tam , DiffPlex jest biblioteką wykorzystywaną przez CodePlex do generowania różnic plików.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-16 14:03:28
GitSharp zawiera silnik diff oparty na meyers diff. Spójrz na demo, które implementuje prostą przeglądarkę różnic wpf opartą na różnicy.Zbiór sekcji: http://www.eqqon.com/index.php/GitSharp#GitSharp.Demo
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-01-31 00:45:07
Do tej pory żadna z odpowiedzi (z wyjątkiem GitSharp reference) Nie dotyczy 3-way merge, więc na wypadek, gdyby komuś to pomogło, przeniosłem Ostatnio implementację javascript diff3 Tony' ego Garnocka-Jonesa (z projektu synchrotron, opartego na Hunt and McIlroy 1976) do C#.
Jest to uproszczony port jednego pliku metod diff i Three-way merge, ale jest to standardowy algorytm i jak na razie działa bardzo dobrze dla mnie: https://gist.github.com/2633407
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-21 13:11:06