So Sánh Văn Bản
Ưu tiên quyền riêng tưSo sánh và hiển thị sự khác biệt giữa hai văn bản.
Original Text
Modified Text
Differences
Added
Removed
So sánh văn bản (Text Diffing) là gì?
So sánh văn bản là quá trình so sánh hai chuỗi dữ liệu để xác định sự khác biệt giữa chúng. Nó làm nổi bật những gì đã được thêm vào, xóa bỏ, hoặc sửa đổi. Đây là một thao tác cơ bản trong phát triển phần mềm, phân tích dữ liệu, và quản lý nội dung, cho phép người dùng theo dõi thay đổi theo thời gian hoặc so sánh các phiên bản khác nhau của một tài liệu.
Thuật toán Diff
Hầu hết các công cụ so sánh văn bản đều sử dụng thuật toán dựa trên bài toán Dãy con chung dài nhất (Longest Common Subsequence - LCS). Mục tiêu là tìm dãy phần tử dài nhất xuất hiện trong cả hai văn bản theo cùng thứ tự tương đối. Các triển khai phổ biến bao gồm thuật toán Myers diff, rất hiệu quả và được Git sử dụng, và thuật toán Hunt-McIlroy. Các thuật toán này tính toán số lượng chỉnh sửa tối thiểu cần thiết để biến đổi văn bản này thành văn bản khác.
Trường hợp sử dụng
Code review để nhà phát triển có thể xem chính xác những gì đã thay đổi trong một pull request. Hệ thống quản lý phiên bản như Git lưu trữ lịch sử dưới dạng chuỗi các diff để tiết kiệm dung lượng. Kiểm toán nội dung cho người viết và biên tập viên so sánh các bản nháp để đảm bảo tất cả các thay đổi yêu cầu đã được thực hiện. Xác thực dữ liệu để so sánh tệp cấu hình hoặc dữ liệu xuất từ cơ sở dữ liệu nhằm tìm ra sự khác biệt.
Mẹo hay
Nhiều công cụ diff có tùy chọn bỏ qua các thay đổi về thụt lề hoặc khoảng trắng cuối dòng, giúp giảm nhiễu khi so sánh mã. Bao gồm một vài dòng văn bản không thay đổi xung quanh các khác biệt (dòng ngữ cảnh) để hiểu tác động của các thay đổi. Diff cấp từ thường hữu ích hơn cho văn xuôi và tài liệu ngôn ngữ tự nhiên, trong khi diff cấp dòng là tiêu chuẩn cho mã nguồn.