요구 사항 :
- 무료, 가급적 오픈 소스
- .NET 관리 언어 중 하나로 구현
Google은 다음을 발견했습니다.
- 코드 프로젝트에 대한 일반적인 재사용 가능한 Diff 알고리즘
- C # 용 O (ND) 차이 알고리즘
- Joshua Tauberer의 C # /. NET 용 Diff / Merge / Patch 라이브러리
편집하다:
앱은없고 라이브러리 만 있습니다.
요구 사항 :
Google은 다음을 발견했습니다.
편집하다:
앱은없고 라이브러리 만 있습니다.
답변:
Google의 Diff / Patch / Match를 사용하는 COM 구성 요소를 가져올 수 있습니다 . .NET에서 작동합니다.
업데이트, 2010 년 10 월 17 일 : Google Diff / Patch / Merge 코드 가 C #으로 포팅되었습니다. COM 구성 요소는 여전히 작동하지만 .NET에서 온 경우 .NET 포트를 직접 사용하고 싶을 것입니다.
netstandard1.0
매우 가벼운 무게. 다음 RichTextBox
과 같이 사용하여 WPF 애플리케이션에 쉽게 임베드 할 수 있습니다 . github.com/halllo/WpfDiff
Install-Package Diff.Match.Patch
Codeproject의 "Generic-Reusable Diff Algorithm in C #"이 diff / patch / merge를위한 .NET-Engine으로 찾을 수있는 가장 좋은 방법이라고 생각합니다. 나는 그것으로 혼자서 프로젝트를 만들었고 대부분의 시나리오에서 내 요구에 맞습니다. 알고리즘이 패치 파일을 필요한 것보다 크게 만들었을 때 최악의 시나리오가 한두 가지 있습니다. 그러나 대부분의 경우 저에게 잘 작동합니다 (> 30MB 크기의 텍스트 파일).
저는 현재 다른 Codeproject-Project를 여기에서 테스트하고 있습니다 : http://www.codeproject.com/KB/applications/patch.aspx 패치를 위해 Microsoft의 DLL을 사용하고 있으므로 흥미로워 보입니다. 그러나 이러한 DLL은 관리되지 않으며이 프로젝트는 일종의 래퍼 일뿐입니다. 하지만 도움이 될 수 있습니다
편집 : 그냥 다른 프로젝트, 발견 DiffPlex : http://diffplex.codeplex.com/ 그건 실버 라이트와 HTML 사랑하는 시청자 모두와 .NET diffing의 라이브러리의 조합을 . 거기 에서 언급했듯이 DiffPlex는 CodePlex가 파일의 차이를 생성하는 데 활용하는 라이브러리입니다.
GitSharp에는 meyers diff를 기반으로하는 diff 엔진이 포함되어 있습니다. Diff.Sections 컬렉션을 기반으로 간단한 wpf diff 뷰어를 구현하는 데모를 살펴보십시오. http://www.eqqon.com/index.php/GitSharp#GitSharp.Demo
지금까지의 답변 (GitSharp 참조 제외)은 3 방향 병합을 처리하지 않으므로 최근에 Tony Garnock-Jones의 javascript diff3 구현 ( Hunt 및 McIlroy 1976 기반 의 싱크로트론 프로젝트 에서)을 이식 한 사람에게 도움이 될 수 있습니다. C #으로.
diff 및 3 방향 병합 방법의 단순한 단일 파일 포트이지만 표준 알고리즘이며 지금까지 저에게 매우 잘 작동합니다 : https://gist.github.com/2633407