Công cụ so sánh khác biệt văn bản

Tiếp theo: văn bản đã thay đổi

Việc nhận diện ba từ thay đổi giữa hai phiên bản hợp đồng, dấu phẩy dư thừa trong tệp xuất định dạng CSV, hoặc những thay đổi cụ thể trong tệp cấu hình – tất cả đều không thể thực hiện bằng mắt thường khi xem qua vài trăm dòng văn bản. Chỉ cần dán hai phiên bản của văn bản, công cụ so sánh này sẽ hiển thị các phần thêm vào bằng màu xanh lá, các phần bị loại bỏ bằng màu đỏ, và các thay đổi nằm trên cùng một dòng sẽ được đánh dấu trực tiếp.

Cách công cụ tìm ra khác biệt

  1. 1

    Dán hai phiên bản

    Dán văn bản gốc trước, sau đó dán phiên bản bạn muốn so sánh với nó.

  2. 2

    Công cụ này chạy phép so sánh Myers.

    Cùng một thuật toán mà Git sử dụng, nhằm tạo ra chuỗi các thay đổi tối thiểu.

  3. 3

    Các dòng được căn chỉnh thẳng hàng

    Các dòng không thay đổi vẫn giữ vị trí liền kề nhau; các dòng được thêm hoặc xóa sẽ để khoảng trống ở phía bên kia.

  4. 4

    Đánh dấu nội dung trong dòng

    Trong các dòng đã được chỉnh sửa, chỉ những từ bị thay đổi mới được tô màu để bạn có thể dễ dàng nhận biết chính xác điều gì đã thay đổi.

Quy ước màu sắc của khác biệt

Màu sắc Ý nghĩa
Đỏ Đã xóa: dòng chỉ có trong văn bản gốc
Xanh lá Đã thêm: dòng chỉ có trong văn bản đã thay đổi
Đỏ hoặc xanh lá đậm hơn Những từ đã thay đổi trong một dòng được chỉnh sửa
Trắng Không thay đổi (ngữ cảnh)

Các trường hợp sử dụng phổ biến

  • Các sửa đổi trong hợp đồng: hãy kiểm tra kỹ những điều khoản nào đã thay đổi giữa phiên bản v3 và v4 của thỏa thuận trước khi ký kết.
  • Kiểm tra tệp cấu hình – xác minh những thay đổi mà thành viên trong nhóm đã thực hiện trên file nginx.conf trước khi triển khai vào môi trường sản xuất.
  • Kiểm tra chất lượng dịch thuật, đối chiếu hai bản dịch của cùng một chuỗi văn bản để phát hiện các dấu câu thiếu.
  • So sánh xuất dữ liệu CSV: xác định những dòng nào khác biệt giữa dữ liệu tuần trước và dữ liệu tuần này.
  • Xem xét mã nguồn mà không sử dụng Git – phương pháp so sánh nhanh một lần khi bạn không muốn tạo một kho lưu trữ.

Mẹo để có kết quả so sánh sạch

  • Ký tự xuống dòng không bao giờ bị tính là thay đổi. Kiểu xuống dòng của Windows (CRLF) và của Unix hoặc macOS (LF) được so sánh như nhau, nên bạn không cần chuyển đổi gì trước.
  • Xóa các khoảng trắng phía sau trong cả hai đoạn trước khi so sánh; nếu không, các khoảng trống vô hình sẽ được ghi nhận là những thay đổi.
  • Đối với JSON hoặc YAML, hãy định dạng cả hai bằng cùng một mức thụt lề trước tiên; việc định dạng lại sẽ che khuất các thay đổi thực tế.
  • Sắp xếp theo thứ tự bảng chữ cái nếu bạn đang so sánh hai danh sách mà thứ tự không quan trọng (ví dụ như các mối phụ thuộc).

Giới hạn của so sánh theo dòng

So sánh theo dòng rất phù hợp với mã nguồn và tệp cấu hình. Tuy nhiên, với văn xuôi thì kém hiệu quả hơn: nếu bạn dời một câu xuống hai đoạn, kết quả sẽ hiện thành một lần xóa và một lần chèn chứ không phải một lần di chuyển. Khi biên tập bản thảo, so sánh theo từ hoặc theo câu sẽ cho kết quả rõ ràng hơn.

Câu hỏi thường gặp

Có. Văn bản được so sánh theo từng dòng với mọi ngôn ngữ và hệ chữ viết, nên tiếng Trung, tiếng Nhật, tiếng Ả Rập, tiếng Thái, chữ có dấu và biểu tượng cảm xúc đều dùng được. Trong một dòng đã chỉnh sửa, các từ thay đổi sẽ được đánh dấu; với tiếng Trung, tiếng Nhật và tiếng Thái, vốn không dùng dấu cách để tách từ, công cụ sẽ đánh dấu các ký tự đã thay đổi.

Tối đa 20.000 dòng và 500.000 ký tự cho mỗi văn bản. Nếu vượt quá mức đó, hoặc khi hai văn bản dài khác nhau quá nhiều để so sánh từng dòng, công cụ sẽ hiện thông báo thay vì làm treo trang: hãy so sánh một phần nhỏ hơn của mỗi văn bản, hoặc dùng git diff hay một phần mềm so sánh trên máy tính. Khi kết quả có hơn 5.000 dòng, trang chỉ hiển thị 5.000 dòng đầu tiên, nhưng bản unified diff bạn sao chép vẫn chứa mọi thay đổi.

Bật tùy chọn “Bỏ qua khoảng trắng” để bỏ qua những khác biệt chỉ nằm ở phần thụt lề hoặc khoảng trắng cuối dòng. Hữu ích khi các công cụ định dạng lại mã (như Prettier, Black) tạo ra những thay đổi bạn không cần quan tâm.

Không. Hai văn bản chỉ ở trong trình duyệt của bạn: chúng được so sánh ngay trên trang này, không được gửi đến máy chủ của chúng tôi và không được thêm vào liên kết của trang. Giữa các bước, chúng chỉ được lưu trong thẻ trình duyệt này cho đến khi bạn đóng thẻ hoặc chọn Bắt đầu lại.

Công cụ liên quan

Công cụ này có phiên bản bằng các ngôn ngữ khác