Có cách nào để kiểm soát hoàn toàn thủ công đối với quy trình hợp nhất trong Mercurial không?Hoàn toàn thủ công Mercurial merge
Tôi muốn có thể chọn hướng hợp nhất tệp, ngay cả đối với tệp không có xung đột. Có thể không?
Có cách nào để kiểm soát hoàn toàn thủ công đối với quy trình hợp nhất trong Mercurial không?Hoàn toàn thủ công Mercurial merge
Tôi muốn có thể chọn hướng hợp nhất tệp, ngay cả đối với tệp không có xung đột. Có thể không?
Tắt "hợp nhất trước" trong cấu hình hợp nhất của bạn. Sau đó, mọi thứ được tính là xung đột và bạn có thể chọn "trái" hoặc "phải" cho mỗi và mọi thay đổi tệp.
[merge-tools]
mymergetool.premerge = False
Việc hợp nhất luôn được thực hiện giữa bản sửa đổi gốc của thư mục làm việc và bản sửa đổi khác, theo mặc định đầu còn lại trong kho lưu trữ của bạn.
Nếu bạn muốn kết hợp trong "hướng" khác mà bạn có thể thay đổi chi nhánh là trong thư mục làm việc của bạn bằng cách xem một phiên bản cụ thể:
hg update -r [rev]
Để xem đứng đầu mà bạn có trong kho của bạn chạy lệnh sau:
hg heads
Ngoài ra, nếu bạn đang sử dụng fetch
bạn có thể sử dụng tùy chọn --switch-parent
sáp nhập theo một hướng khác:
hg fetch --switch-parent
Bạn không thể thay đổi hướng hợp nhất trên cơ sở từng tệp khi Mercurial làm việc với các thay đổi ảnh hưởng đến toàn bộ kho lưu trữ không bằng cách theo dõi các thay đổi đối với các tệp riêng lẻ như CVS.
Tôi thấy anh ấy đã chấp nhận câu trả lời của bạn, nhưng tôi không nghĩ đó thực sự là những gì anh ấy hỏi. Bạn đã nói với anh ta cách chọn "trái" hoặc "phải" cho tất cả các cuộc xung đột, nhưng nếu anh ta muốn trộn và kết hợp, anh ta cần phải tắt nội dung "hợp nhất trước" trước khi khởi chạy công cụ hợp nhất của mình. –
Chỉnh sửa tập tin cấu hình của bạn theo cách này:
[ui]
merge = kdiff3
[merge-tools]
kdiff3.premerge = false
kdiff3.args=--L1 base --L2 local --L3 other $base $local $other -o $output
Theo mặc định nó đặt đối số --auto
trên KDiff3 hòa trộn tự động để KDiff3.
+1 vì tôi đang đấu tranh với điều này trong nửa giờ và bạn là người đầu tiên đề xuất xóa đối số '--auto'. Nó sẽ đưa tôi mãi mãi để tìm thấy nó (như tôi đã bỏ lỡ nó tất cả các lần khác tôi cần một hợp nhất thủ công). –
Trong trường hợp KDiff3, điều quan trọng là thêm tùy chọn --qall
(xem http://kdiff3.sourceforge.net/doc/documentation.html). Sẽ có sự hợp nhất tự động của một số xung đột mà không có khóa này (như "Tự động giải quyết xung đột đơn giản" từ "Hợp nhất" menu). Do đó, dòng lệnh phù hợp hơn là:
[ui]
merge = kdiff3
[merge-tools]
kdiff3.premerge = False
kdiff3.args=$base $local $other -o $output --L1 base --L2 local --L3 other --qall
Nowaways bạn có thể thử 'hg merge --tool internal: prompt' –
Có lẽ nó sẽ giúp ai đó bởi vì cũng không phải đoạn mã trên không dưới đây không giúp tôi. Tôi đã thêm '[ui] -> merge = internal: merge' và nó hoàn toàn vô hiệu hóa các công cụ giải quyết sau khi hợp nhất không thành công. Công cụ gây phiền toái [this] (http://i.stack.imgur.com/WNHq4.png) bắt đầu xuất hiện sau khi tôi cập nhật phiên bản Mercurial của mình. – ivkremer