Persyaratan:
- gratis, sebaiknya sumber terbuka
- diterapkan di salah satu lang yang dikelola .NET
Google menemukan ini:
- Algoritma Diff Generik yang Dapat Digunakan Kembali pada codeproject
- Algoritma Perbedaan O (ND) untuk C #
- Diff / Merge / Patch Library untuk C # /. NET oleh Joshua Tauberer
EDIT:
Tidak ada aplikasi, hanya perpustakaan.
Jawaban:
Anda dapat mengambil komponen COM yang menggunakan Diff / Patch / Match Google . Ia bekerja dari .NET.
Pembaruan, 2010 Okt 17 : Kode Google Diff / Patch / Merge telah ditransfer ke C #. Komponen COM masih berfungsi, tetapi jika Anda berasal dari .NET, Anda harus menggunakan port .NET secara langsung.
sumber
netstandard1.0
dan berat yang sangat ringan. Anda dapat dengan mudah menyematkannya di aplikasi WPF Anda menggunakanRichTextBox
seperti ini: github.com/halllo/WpfDiffInstall-Package Diff.Match.Patch
Saya rasa "Generic - Reusable Diff Algorithm in C #" pada Codeproject adalah yang terbaik yang dapat Anda temukan sebagai .NET-Engine untuk diff / patch / merge. Saya membuat proyek sendiri dengannya dan itu sesuai dengan kebutuhan saya dengan sebagian besar skenario. Ada satu atau dua skenario terburuk ketika algoritma membuat file patch lebih besar dari yang seharusnya. Tetapi dalam kebanyakan kasus, ini berfungsi dengan baik untuk saya (file tekstil dengan ukuran> 30 MB).
Saat ini saya sedang menguji Codeproject-Project lain yang dapat Anda temukan di sini: http://www.codeproject.com/KB/applications/patch.aspx Ini menggunakan beberapa DLL dari Microsoft untuk menambal, jadi kelihatannya menarik. Tetapi DLL tersebut tidak dikelola dan proyek ini hanya semacam pembungkus untuk itu. Tapi mungkin itu bisa membantu Anda
Edit: Baru saja menemukan proyek lain, DiffPlex : http://diffplex.codeplex.com/ Ini adalah kombinasi dari .NET Diffing Library dengan penampil perbedaan Silverlight dan HTML . Seperti yang dinyatakan di sana , DiffPlex adalah pustaka yang dimanfaatkan CodePlex untuk menghasilkan berbagai file.
sumber
GitSharp menyertakan mesin diff berdasarkan meyers diff. Lihatlah demo yang mengimplementasikan penampil diff wpf sederhana berdasarkan koleksi Diff.Sections: http://www.eqqon.com/index.php/GitSharp#GitSharp.Demo
sumber
Sejauh ini tidak ada jawaban (kecuali mungkin referensi GitSharp) yang berhubungan dengan penggabungan 3 arah, jadi jika itu membantu siapa pun yang baru-baru ini saya porting implementasi javascript diff3 Tony Garnock-Jones (dari proyek synchrotron , berdasarkan Hunt dan McIlroy 1976) ke C #.
Ini adalah port file tunggal sederhana dari metode diff dan penggabungan tiga arah, tetapi ini adalah algoritme standar dan sejauh ini bekerja dengan sangat baik untuk saya: https://gist.github.com/2633407
sumber