2009-07-29 4 views
26

그래서 위키 유형 사이트에서 작업했습니다. 내가 결정하려고하는 것은 두 명의 사용자가 동시에 편집하는 기사를 병합하는 가장 좋은 알고리즘입니다.텍스트 용 3 웨이 병합 알고리즘

지금까지 두 개의 관련이없는 영역을 편집하는 경우 위키 백과의 문서 병합 방법을 사용하고 있지만 두 가지가 충돌하는 경우 이전 변경 사항을 버리는 것이 좋습니다.

내 질문은 다음과 같습니다. 원래 기사와 두 가지 변경 사항이있는 경우 병합하는 가장 좋은 알고리즘은 무엇이며 충돌이 발생하면 어떻게 처리합니까?

답변

29

빌 리처 (Bill Ritcher)의 우수한 논문 "A Trustworthy 3-Way Merge"은 상용 SCM 패키지가 사용했던 세 가지 방식의 병합 및 영리한 솔루션과 함께 일반적인 아이디어에 대해 이야기합니다.

3 방향 병합은 자동으로 각 버전의 모든 변경 사항 (겹치지 않음)을 적용합니다. 트릭은 최대한 많은 중복 영역을 자동으로 처리하는 것입니다.

+0

멋진 종이, 링크 덕분에! – icco

+0

내가 지정한 URL이 404이기 때문에 URL이 변경됩니다. 동일한 기사를 계속 참고하시기 바랍니다. – ChrisW

+0

그래, 그게 다야. 그것을 업데이트 주셔서 감사합니다! –

2

솔직하게, 나는 diff3에 의존 할 것입니다. 거의 모든 유닉스 배포판에 포함되어 있으며 Windows 용 .EXE를 항상 빌드하고 번들로 묶어서 사용자 목적에 맞게 배포 할 수 있습니다.

9

diff3 알고리즘의 공식적인 분석은이 논문에서, 의사와 함께있다 : 그것은 제목 "Diff3의 공식 조사"와 산지 브 칸나, Keshav 쿠날, 벤자민 C. 피어스에 의해 작성된 것입니다 http://www.cis.upenn.edu/~bcpierce/papers/diff3-short.pdf

야후.