2013-05-31 16 views

Trả lời

3

Thay đổi hợp nhất có hai phụ huynh và do đó có hai cách khác nhau để xem những gì đã thay đổi. Theo mặc định nếu bạn sử dụng hg diff -c <changeset>, nó sẽ hiển thị sự khác biệt so với cha mẹ đầu tiên thường đại diện cho thư mục làm việc tại thời điểm hợp nhất. Nếu giả định đó sai, đó là cách dễ dàng để giới thiệu lỗi.

Điều đó dẫn đến câu hỏi lý do tại sao bạn ghép một bộ thay đổi hợp nhất chứ không phải bản thân các thay đổi ban đầu. Nếu có một loạt các thay đổi bạn muốn ghép và bạn đang sử dụng bộ thay đổi hợp nhất thành "rollup" chuỗi đó, bạn có thể ghép nhiều thay đổi ban đầu cùng một lúc: hg graft "1000::1005".

Cá nhân, tôi thường sử dụng hg rebase cho các nhiệm vụ như thế này, dù rằng yêu cầu bật phần mở rộng rebase trong HGRC hoặc mercurial.ini của bạn:

[extensions] 
rebase= 
+4

Động lực là ghép các changeset merge là dễ dàng hơn việc sáp nhập các ghép các thay đổi riêng lẻ. Cũng có những tình huống mà việc ghép các thay đổi cá nhân từ nhánh thứ hai là không rõ ràng. Trong trường hợp của tôi rebase không được áp dụng. Các thay đổi đã được công khai. –

+0

Tôi có hợp nhất nơi có xung đột hợp nhất khó giải quyết. Tôi muốn biết làm thế nào để ghép hợp nhất thay đổi trở lại bởi vì độ phân giải sẽ làm việc với một p1 cũ hơn() thay vì làm lại công việc của giải quyết xung đột hợp nhất, nhưng âm thanh như vậy không phải là một lựa chọn. – binki