Giới thiệu các công cụ so sánh files (Diff) dành cho Linux/Ubuntu tốt nhất

Với Developer việc so sánh 2 file source code cũ và mới để xem những điểm được thay đổi (thêm mới/sửa/xóa) rất quan trọng. Và trong một vài loại test đặc biệt thì tầm quan trọng của việc so sánh 2 file đối với các QA cũng thế. Hiện nay đang có rất nhiều công cụ để so sánh nội dung 2 files dành cho Windows, vậy nếu bạn lại dùng hệ điều hành Linux hay Ubuntu thì sao? Trên Linux/Ubuntu cung cấp sẵn cho chúng ta một command gọi là "diff" như dưới đây:

Command này so sánh từng dòng của 2 tập tin và liệt kê ra cho chúng ta các dòng khác nhau giữa 2 files, nhưng kết quả hiển thị trên màn hình command nên vẫn rất khó để nhìn ra sự khác biệt. Nhất là khi nội dung file của chúng ta không chỉ đơn giản là có một vài dòng như ví dụ. Vậy cái mà chúng ta cần là những công cụ so sánh có thể giúp chúng ta nhìn được sự khác nhau đó một cách trực quan, sinh động thông qua giao diện dễ sử dụng hơn. Bài viết này sẽ giới thiệu tới bạn các công cụ tốt nhất để so sánh sự khác nhau giữa các file (thậm chí so sánh cả folder) dành cho môi trường sử dụng Linux hoặc Ubuntu.

1. Kompare

Kompare là một wrapper GUI cho phép người dùng xem được sự khác nhau giữa các tệp và cũng cho phép hợp nhất nội dung giữa chúng.

Kompare tool có những tính năng như sau:

  • Hỗ trợ nhiều định dạng khác nhau
  • Hỗ trợ so sánh các thư mục
  • Hỗ trợ đọc các tập tin diff
  • Giao diện có thể tùy chỉnh
  • Tạo và áp dụng bản vá cho các tệp nguồn

Giao diện của Kompare bao gồm các thành phần:

  • Menu: Kompare cung cấp giao diện điều khiển theo menu giúp người dùng dễ dàng thao tác.
  • Thanh công cụ (Toolbar): cung cấp các phím tắt cho các hoạt động diff và merge thường được sử dụng nhất.
  • Source and Destination Folders: Thư mục nguồn và thư mục đích sẽ hiển thị các thư mục, trong đó các tập tin được so sánh theo chiều ngang tương đương với nhau. Khi nhiều thư mục con được đưa vào so sánh, thì thư mục được chọn sẽ hiển thị tài liệu đầu tiên trong thư mục đó, nơi có sự khác biệt giữa nguồn và đích.
  • Source and Destination Files: Khi một thư mục có nhiều tài liệu có chứa sự khác biệt, tất cả các tài liệu có sự khác biệt được liệt kê. Tài liệu đã chọn sẽ được hiển thị.
  • Source and Destination Line Changes: Phần liệt kê tóm tắt những sự thay đổi đang có giữa 2 file (folder nguồn và đích)
  • Source and Destination Text View: đây là khu vực chính thể hiện Nội dung và sự khác biệt nổi bật giữa tệp nguồn và tệp đích.
  • Statusbar: Thanh trạng thái cung cấp tóm tắt về tệp nguồn hoặc tệp đích hoặc thư mục hiện tại đang được so sánh. Nó cũng báo cáo số lượng các thay đổi được tìm thấy trong tài liệu hiện tại so với bản cũ. Hơn nữa, nó còn hiển thị tổng số tài liệu có chứa sự khác biệt và số tài liệu hiện tại được chọn từ tập hợp này.

Tuy nhiên đây là một tool có bản quyền nên nếu bạn cần, hãy contact với nhóm phát triển [email protected] để có thêm những thông tin chi tiết hơn.

2. DiffMerge

DiffMerge là một ứng dụng GUI nền tảng cho việc so sánh và merge files, hỗ trợ cho các loại file source code, file HTML và các loại file document khác. Đây là một phần mềm rất hữu ích cho những người làm công việc phát triển phần mềm, thiết kế Web và cả Tester. DiffMerge có hai chức năng:

  • Diff: cho thấy sự khác biệt giữa hai tập tin, hỗ trợ làm nổi bật sự khác biệt và có thể chỉnh sửa trong nội bộ từng file
  • Merge: là công cụ để merge giữa 3 file.

(Chi tiết tham khảo: https://semicrazy.wordpress.com/2009/10/08/using-diffmerge-as-your-subversion-external-merge-tool/)

Nó có các tính năng như sau:

  • Hỗ trợ so sánh cả thư mục
  • Tích hợp trình duyệt tệp
  • Cấu hình cao Tin tốt cho chúng ta đây là một tool miễn phí.

3. Meld – Diff Tool

Thêm một công cụ miễn phí hữu ích nữa cho bạn.

Meld là công cụ Diff và Merge nhẹ có giao diện. Nó cho phép người dùng so sánh các phiên bản của các tập tin, thư mục phục vụ việc quản lý version của chương trình. Được xây dựng đặc biệt dành cho các lập trình viên, nó đi kèm với các tính năng như sau:

  • So sánh hai chiều và ba chiều của tệp và thư mục
  • Cập nhật sự so sánh ngay khi người dùng có sự thay đổi nội dung.
  • Hỗ trợ cho việc merge dễ dàng hơn bằng cách sử dụng chế độ tự động merge và hành động dựa trên các block (khối) nội dung đã thay đổi
  • So sánh dễ dàng nhờ việc hinh ảnh hóa các phần khác nhau.
  • Hỗ trợ Git, Mercurial, Subversion, Bazaar và nhiều loại khác.

4. Diffuse – GUI Diff Tool

Diffuse là một công cụ merge các văn bản nhỏ và đơn giản được viết bằng Python. Với Diffuse, bạn có thể dễ dàng merge, chỉnh sửa và xem xét các thay đổi đối với code của bạn. Diffuse cũng là một phần mềm miễn phí. Nó cung cấp hai chức năng chính là:

  • So sánh tệp và kiểm soát phiên bản, cho phép chỉnh sửa tập tin, hợp nhất các tệp
  • Xuất ra sự khác biệt giữa các tệp.

Bạn có thể xem tóm tắt kết quả so sánh, và sử dụng con trỏ chuột để chọn các dòng văn bản trong các tập tin, kết hợp các dòng trong các tệp lân cận và chỉnh sửa tệp khác. Các tính năng khác bao gồm:

  • Làm nổi bật cú pháp dòng lệnh.
  • Phím tắt để thuận tiện sử dụng
  • Hỗ trợ hoàn tác không giới hạn
  • Hỗ trợ Unicode
  • Hỗ trợ Git, CVS, Darcs, Mercurial, RCS, Subversion, SVK và Monotone

5. XXdiff – Diff and Merge Tool

XXdiff là một công cụ so sánh và kết hợp dữ liệu và tập tin miễn phí, mạnh mẽ chạy trên Unix như các hệ điều hành như Linux, Solaris, HP / UX, IRIX, DEC Tru64. Một hạn chế của XXdiff là thiếu hỗ trợ cho các tệp tin unicode và chỉnh sửa trực tuyến các tệp khác.

Nó có các tính năng sau đây:

  • So sánh đơn giản và sơ bộ của hai, ba tập tin hoặc hai thư mục
  • Làm nổi bật sự khác nhau theo hàng ngang
  • Kết hợp các tập tin và lưu lại kết quả đầu ra
  • Hỗ trợ merge review và chính sách merge.
  • Hỗ trợ các công cụ diff bên ngoài như GNU diff, SIG diff, Cleareddiff và nhiều công cụ khác.
  • Có khả năng mở rộng sử dụng kịch bản
  • Hoàn toàn tùy biến bằng cách sử dụng tài nguyên tập tin cộng với nhiều tính năng nhỏ khác

6. KDiff3 – – Diff and Merge Tool

KDiff3 là một công cụ Diff và merge file khác được phát triển bởi KDevelop. Nó hoạt động trên tất cả các nền tảng Unix-like bao gồm Linux và Mac OS X, Windows.

KDiff3 có thể so sánh hoặc merge hai đến ba tệp hoặc thư mục và có các tính năng nổi bật sau:

  • Cho biết sự khác nhau theo từng dòng và từng ký tự.
  • Hỗ trợ tự động merge.
  • Trình soạn thảo được xây dựng để giải quyết xung đột khi merge
  • Hỗ trợ Unicode, UTF-8 và nhiều loại codec khác
  • Cho phép in ra sự khác biệt
  • Hỗ trợ tích hợp trình điều khiển Windows
  • Cũng hỗ trợ tự động phát hiện thông qua các byte-order-mark "BOM"
  • Hỗ trợ căn chỉnh các dòng thủ công.
  • Giao diện trực quan và nhiều tính năng khác.

7. TkDiff

Tkdiff là chương trình so sánh sự khác nhau giữa các file đồ họa front-end. Nó cung cấp cửa sổ side-by-side để hiển thị kết quả so sánh giữa hai tập tin, cùng với một số tính năng sáng tạo như đánh dấu các phần khác nhau và một bản đồ đồ họa những sự khác biệt để người dùng thao tác nhanh. Nó có thể chạy trên Linux, Windows và Mac OS X.

Cảm ơn bạn đã đọc bài giới thiệu về một số công cụ so sánh và hợp nhất tập tin này. Hy vọng có thể giúp bạn chọn được cho mình một công cụ hiệu quả và ưng ý nhất. Bài viết có tham khảo Link: https://www.tecmint.com/best-linux-file-diff-tools-comparison/