2009-11-27 19 views
6

Tôi làm việc trong môi trường có phân nhánh đa song song quy mô lớn. Nhìn vào GIT tôi thấy nó có một số chiến lược hợp nhất:Chiến lược hợp nhất nào sử dụng một cách thận trọng?

already up-to-date 
fast-forward 
octopus 
resolve 
recursive 

Mercurial có tương đương với mỗi loại này không? (Tức là việc thực hiện thuật toán hợp nhất Mercurial tốt như đệ quy?

+2

'đã cập nhật' và 'tua đi nhanh' không phải là chiến lược hợp nhất. Có, mặc dù, 'ours' và' subtree'. –

+0

Cũng quan tâm: http://kiln.stackexchange.com/questions/2983/what-is-the-algorithm-or-decision-process-used-by-mercurial-during-merge – VonC

Trả lời

9
  • đã up-to-date
  • nhanh về phía trước

Những không hợp nhất các chiến lược, tôi đoán là người đầu tiên là khi không có gì để hợp nhất (rõ ràng hỗ trợ). thứ hai không phải là một hợp nhất, cập nhật trong hg tương đương với nhanh về phía trước (không có gì để hợp nhất là).

  • bạch tuộc

Không áp dụng cho tính chất siêu việt, hợp nhất luôn giữa hai đầu.

  • quyết

Đó là mặc định hợp nhất các chiến lược.

  • đệ quy

lẽ có thể được thực hiện với một kịch bản tùy chỉnh merge (hg, như git chỉ cần gọi các công cụ bên ngoài để xử lý hợp nhất). Nhưng không ai có vẻ quan tâm đến nó bây giờ, có thể bởi vì nó không mang lại nhiều cải tiến so với giải quyết.

+1

"tua đi nhanh" không phải là rebase: thực sự là đối diện của "up-to-date", theo nghĩa là nhánh hiện tại là tổ tiên của nhánh được sát nhập. Theo mặc định (tức là không có tùy chọn '--no-ff') Git chỉ tiến lên đầu nhánh thay vì thực hiện hợp nhất vô nghĩa. –

+3

"đệ quy" hợp nhất chiến lược được thiết kế để đối phó với sáp nhập chéo và các tình huống khác với nhiều hơn một cơ sở hợp nhất .... và với đổi tên trong tình huống như vậy. –

+0

@Jakub, cảm ơn tôi đã cập nhật phần nhanh về phía trước. Vì vậy, nó chỉ là "cập nhật" trong mercurial. chiến lược đệ quy có tạo nên sự khác biệt trong thực tế không? – tonfa

Các vấn đề liên quan