문제

요구 사항 :

  • 무료, 가급적 오픈 소스
  • .NET 관리 Langs 중 하나에서 구현되었습니다

Google은 이것을 찾았습니다.

편집하다:

앱이없고 라이브러리 만 제발.

도움이 되었습니까?

해결책

당신은 잡을 수 있습니다 Google의 Diff/Patch/Match를 사용하는 COM 구성 요소. .NET에서 작동합니다.

업데이트, 2010 년 10 월 17 일: Google Diff/Patch/Merge Code C#로 포팅되었습니다. COM 구성 요소는 여전히 작동하지만 .NET에서 온 경우 .NET 포트를 직접 사용하고 싶을 것입니다.

다른 팁

CodeProject의 "C#의 일반 - 재사용 가능한 Diff 알고리즘"이 Diff/Patch/Merge를위한 .NET -Engine으로 찾을 수있는 가장 좋은 것이라고 생각합니다. 나는 그것으로 스스로 프로젝트를 만들었고 그것은 대부분의 시나리오에 내 요구에 맞습니다. 알고리즘이 패치 파일을 더 크게 만들었을 때 최악의 Scencario가 있습니다. 그러나 대부분의 경우 나에게 잘 작동합니다 (크기가> 30MB의 텍스트 파일).

현재 여기에서 찾을 수있는 다른 CodeProject-Project를 테스트하고 있습니다. http://www.codeproject.com/kb/applications/patch.aspx패치를 위해 Microsoft의 일부 DLL을 사용하고 있으므로 흥미로워 보입니다. 그러나 그 DLL은 관리되지 않으며이 프로젝트는 일종의 포장지 일뿐입니다. 그러나 어쩌면 그것은 당신을 도울 수 있습니다

편집하다:방금 다른 프로젝트를 찾았습니다. diffplex: http://diffplex.codeplex.com/이것의 .NET Diffing Library와 Silverlight 및 HTML Diff Viewer의 조합. 언급 된 바와 같이 거기, diffplex는 CodePlex가 활용하여 파일의 차이를 생성하는 라이브러리입니다.

Gitsharp에는 Meyers Diff를 기반으로 한 Diff 엔진이 포함되어 있습니다. Diff.Sections 컬렉션을 기반으로 간단한 WPF Diff Viewer를 구현하는 데모를 살펴보십시오. http://www.eqqon.com/index.php/gitsharp#gitsharp.demo

지금까지의 답변은 (아마도 Gitsharp 참조 제외) 3 방향 병합을 다루지 않으므로 최근에 Tony Garnock-Jones의 JavaScript Diff3 구현을 포팅 한 사람을 도와주는 경우 싱크로트론 Hunt와 McIlroy 1976을 기반으로 한 프로젝트)).

Diff와 3 방향 병합 방법의 단순한 단일 파일 포트이지만 표준 알고리즘이며 지금까지는 매우 잘 작동합니다. https://gist.github.com/2633407

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top