So sánh văn bản

So sánh hai văn bản theo từng dòng và xem chính xác phần nào được thêm, phần nào bị xóa và phần nào giữ nguyên.

Chạy hoàn toàn trong trình duyệt của bạn. Không có gì được tải lên, ghi log hay lưu trữ.

Dán hai phiên bản của một văn bản và xem điều gì đã thay đổi giữa chúng, theo từng dòng. Việc so sánh diễn ra trong trình duyệt của bạn: không văn bản nào được gửi đi đâu cả.

Cách hoạt động

Hai văn bản được tách thành các dòng và ghép cặp bằng dãy con chung dài nhất, cùng ý tưởng đứng sau lệnh diff của một hệ thống quản lý phiên bản. Những dòng xuất hiện ở cả hai bên, theo cùng thứ tự, được hiển thị là không đổi; mọi thứ còn lại là phần thêm vào hoặc phần bị xóa.

Ký tự xuống dòng được chuẩn hóa trước, nên cùng một tệp lưu trên Windows và trên Linux được so sánh là giống hệt nhau thay vì như thể mọi dòng đều đã thay đổi. Một dòng bị thay thế hiện ra thành một dòng bị xóa kèm theo một dòng được thêm, vì thực chất nó là như vậy.

Các khối giống nhau ở đầu và cuối được bỏ ra trước khi so sánh thật sự, đó là lý do một thay đổi một dòng trong tệp dài có kết quả ngay lập tức. Trường hợp tốn kém là hai văn bản gần như chẳng có gì chung, và từ một kích thước nhất định trở đi công cụ sẽ báo điều đó thay vì làm treo tab của bạn.

Ví dụ

Trường hợp Dữ liệu nhập Kết quả
Một dòng bị sửa trong ba dòng alpha / beta / gamma against alpha / BETA / gamma 1 added, 1 removed

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

Văn bản của tôi có rời khỏi trình duyệt không?

Không. Việc so sánh chạy cục bộ bằng JavaScript, và không có gì được tải lên, ghi log hay lưu trữ. Công cụ này cũng không có liên kết chia sẻ, vì một liên kết sẽ phải mang cả hai văn bản trong URL, nơi chúng sẽ nằm lại trong lịch sử trình duyệt và trong log của máy chủ.

Vì sao công cụ so sánh theo dòng chứ không theo từ?

Vì đó là cách khiến một bản diff dễ đọc với những thứ người ta hay so sánh: cấu hình, mã nguồn, hợp đồng. Diff theo từ của một đoạn văn bị ngắt dòng lại sẽ đánh dấu gần như mọi từ là đã sửa và chẳng cho bạn biết điều gì.

Tùy chọn bỏ qua khoảng trắng chính xác bỏ qua những gì?

Các chuỗi dấu cách và tab liên tiếp được rút gọn thành một dấu cách và hai đầu mỗi dòng được cắt bỏ, nên việc thụt lề lại một khối không bị báo là viết lại. Nó không xóa hẳn khoảng trắng: “a b” và “ab” vẫn là hai dòng khác nhau.

Có giới hạn kích thước không?

Năm nghìn dòng mỗi bên, và phần thực sự khác nhau có thể trải dài tối đa 1.200 dòng mỗi bên. Giới hạn thứ hai là giới hạn bị chạm tới khi hai văn bản không liên quan gì đến nhau; công cụ sẽ từ chối thay vì dùng cạn bộ nhớ.

Cần biết

  • Việc so sánh chạy trong trình duyệt của bạn. Không có gì bạn dán vào bị gửi đi, ghi log hay lưu trữ, và máy chủ không bao giờ được yêu cầu so sánh bất cứ thứ gì.
  • Điều đó cũng có nghĩa là công cụ cần JavaScript. Không có JavaScript thì hoàn toàn không có phép so sánh nào, chứ không phải một phép so sánh được thực hiện ở nơi khác.

Tất cả công cụ Lập trình