IT story

.NET 용 텍스트 비교 / 병합 엔진이 있습니까?

hot-time 2020. 8. 12. 21:16
반응형

.NET 용 텍스트 비교 / 병합 엔진이 있습니까? [닫은]


요구 사항 :

  • 무료, 가급적 오픈 소스
  • .NET 관리 언어 중 하나로 구현

Google은 다음을 발견했습니다.

편집하다:

앱은없고 라이브러리 만 있습니다.


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

반응형