2009-07-29 33 views
26

Vì vậy, tôi đã làm việc trên một trang loại wiki. Những gì tôi đang cố gắng để quyết định là những gì các thuật toán tốt nhất cho việc sáp nhập một bài viết đó là đồng thời được chỉnh sửa bởi hai người dùng. Cho đến nay tôi đang cân nhắc việc sử dụng phương pháp sáp nhập tài liệu của Wikipedia nếu hai khu vực không liên quan được chỉnh sửa, nhưng bỏ đi thay đổi cũ hơn nếu hai xung đột xung đột.Ba cách hợp nhất thuật toán cho văn bản

Câu hỏi của tôi như sau: Nếu tôi có bài viết gốc và hai thay đổi, thuật toán tốt nhất để hợp nhất chúng là gì và sau đó xử lý các xung đột khi chúng phát sinh?

Trả lời

29

Bài báo tuyệt vời của Bill Ritcher "A Trustworthy 3-Way Merge" nói về một số gotchas chung với ba cách sáp nhập và giải pháp thông minh cho họ rằng gói SCM thương mại đã sử dụng.

Hợp nhất 3 chiều sẽ tự động áp dụng tất cả các thay đổi (không trùng lặp) từ mỗi phiên bản. Bí quyết là tự động xử lý càng nhiều khu vực chồng chéo càng tốt.

+0

Giấy lạnh, cảm ơn liên kết! – icco

+0

Tôi thay đổi URL vì URL bạn đã cung cấp hiện là 404. Tôi hy vọng nó vẫn đề cập đến cùng một bài viết. – ChrisW

+0

Yup, đúng vậy. Cảm ơn bạn đã cập nhật! –

2

Thành thật mà nói, tôi sẽ dựa vào diff3. Nó có khá nhiều bản phân phối Unix và bạn luôn có thể tạo và đóng gói một .EXE cho Windows để đảm bảo nó có sẵn cho mục đích của bạn.

9

Có một phân tích chính thức của thuật toán diff3, với giả, trong bài viết này: http://www.cis.upenn.edu/~bcpierce/papers/diff3-short.pdf

Nó có tựa đề "Một cuộc điều tra chính thức của Diff3" và được viết bởi Sanjeev Khanna, Keshav Kunal, và Benjamin C. Pierce từ Yahoo.

Các vấn đề liên quan