.NET 용 텍스트 비교 / 병합 엔진이 있습니까? [닫은]
요구 사항 :
- 무료, 가급적 오픈 소스
- .NET 관리 언어 중 하나로 구현
Google은 다음을 발견했습니다.
- 코드 프로젝트 의 일반적인 재사용 가능한 Diff 알고리즘
- C # 용 O (ND) 차이 알고리즘
- Joshua Tauberer의 C # /. NET 용 Diff / Merge / Patch 라이브러리
편집하다:
앱은없고 라이브러리 만 있습니다.
Google의 Diff / Patch / Match를 사용하는 COM 구성 요소를 가져올 수 있습니다 . .NET에서 작동합니다.
업데이트, 2010 년 10 월 17 일 : Google Diff / Patch / Merge 코드 가 C #으로 포팅되었습니다. COM 구성 요소는 여전히 작동하지만 .NET에서 온 경우 .NET 포트를 직접 사용하고 싶을 것입니다.
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가 파일의 diff를 생성하는 데 활용하는 라이브러리입니다.
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
참고 URL : https://stackoverflow.com/questions/138331/any-decent-text-diff-merge-engine-for-net
'IT story' 카테고리의 다른 글
CSS 속성을 어떻게 무효화 할 수 있습니까? (0) | 2020.08.13 |
---|---|
jquery $ (window) .width () 및 $ (window) .height ()는 뷰포트의 크기가 조정되지 않은 경우 다른 값을 반환합니다. (0) | 2020.08.12 |
jQuery 객체에서 선택기를 어떻게 얻을 수 있습니까? (0) | 2020.08.12 |
랜덤 클래스 스레드는 안전합니까? (0) | 2020.08.12 |
템플릿과 함께 인라인 키워드를 사용하는 것이 합리적입니까? (0) | 2020.08.12 |