Làm thế nào để tôi hợp nhất hai tập tin văn bản?


13

Gần đây tôi đã nâng cấp từ Ubuntu 12.04 lên 12.10 và tại một thời điểm, nó đã gặp phải xung đột tệp cấu hình Apache apache2.conf. Tôi đã không cung cấp cho tôi một tùy chọn hợp nhất tại thời điểm đó, vì vậy tôi chỉ từ chối tệp mới và trình cài đặt đã lưu tệp mới dưới dạng apache2.conf.dpkg-dist.

Tôi có thể tìm khác biệt hai tệp với diff apache2.conf apache2.conf.dpkg-distvà chỉ nhận các dòng khác nhau. Nhưng tôi muốn hợp nhất hai cách giống như cách tôi giải quyết xung đột hợp nhất trong SVN hoặc git. Làm thế nào tôi có thể làm điều đó?


Nếu không có trình phân tích cú pháp thích hợp, bạn chỉ có thể hợp nhất chúng theo cách thủ công
daisy

Câu trả lời:



2

Kiểm soát phiên bản có nhiều thông tin hơn khi giải quyết xung đột: nó không chỉ có phiên bản của bạn và phiên bản của người kia mà còn là tổ tiên chung, và do đó nó có thể hợp nhất ba chiều . Ở đây, tổ tiên chung là phiên bản gốc của tệp cấu hình trong bản phân phối hoặc phiên bản chính thức mà bạn đã hợp nhất lần cuối với các thay đổi của mình.

Thật không may, cả Ubuntu và bất kỳ bản phân phối chính nào khác mà tôi biết đều làm cho nó hoàn toàn liền mạch để thực hiện hợp nhất ba chiều khi một tệp cấu hình được cập nhật. Bạn có thể đến gần, tuy nhiên, với etckeeper . Etckeeper là một tiện ích bổ sung cho APT, công cụ quản lý gói được sử dụng bởi Debian và các công cụ phái sinh, quản lý /etctrong một hệ thống kiểm soát phiên bản (Bazaar, Darcs, Git, Mercurial); nó đã được chuyển đến các hệ thống khác, bao gồm cả Yum ở Fedora. Tôi khuyên bạn nên sử dụng etckeeper; đó cũng là một cách tuyệt vời để theo dõi những thay đổi bạn thực hiện /etc.

Một số chương trình quản lý các tệp cấu hình của chúng bằng ucf , nhưng đó không phải là thứ bạn có quyền kiểm soát với tư cách là người dùng.

Tổng quát hơn, khi bạn có tổ tiên và hai phiên bản, bạn có thể thực hiện hợp nhất ba chiều với mergetiện ích được vận chuyển bằng RCS hoặc diff3 -mtừ diffutils .

Ngoài ra còn có rất nhiều chương trình khác nhau và hợp nhất tương tác. Emacs và Vim có giao diện cho điều đó, cũng như hầu hết người xem khác .


1

Sở thích cá nhân của tôi là kdiff3- Tôi không biết, nếu có phiên bản Ubuntu cho nó. Theo trang chủ nó chỉ sử dụng qt .

Với công cụ đó, bạn có thể hợp nhất hai (hoặc ba) tệp thành một tệp mới. Hoặc bằng cách chọn một bên cho mỗi sự khác biệt, hoặc bằng cách giải quyết xung đột bằng tay.


hiện tại (15.04) kdiff3kdiff3-qt
ubfox
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.