2013-08-15 19 views
6

Trong số svn book nó nói merge 's --reintegrate là "để hợp nhất tất cả các thay đổi của URL nguồn vào bản sao làm việc ".Sự khác biệt giữa "svn merge --reintegrate" và svn merge mà không cần tích hợp lại nếu tôi muốn hợp nhất một nhánh vào thân cây

Tôi muốn hợp nhất chi nhánh trở lại thân cây. Some places nói rằng "hoàn toàn cần thiết" để gọi reintegrate khi hợp nhất và sau đó delete the branch ngay sau đó, điều mà tôi nghĩ là một rắc rối. Other places không đề cập đến việc tái hòa nhập. Tôi có svn 1.6.11.

Vì vậy, tôi không biết phải làm gì bây giờ.

Trả lời

10

A đồng bộ hóa hợp nhất là điều gì đó hoàn toàn khác với việc hợp nhất hòa nhập . Trước đây được sử dụng để hợp nhất tất cả các thay đổi được thực hiện trên nhánh cha với nhánh đích (thường là một nhánh tính năng), mà chưa được hợp nhất. Sau này được sử dụng để kết hợp một nhánh (feature) trở lại nhánh cha. Về cơ bản, điều đó có nghĩa là một bản sao tạm thời của nhánh (feature) được tạo ra, một sự phối hợp đồng bộ được tạo từ nhánh gốc đến nhánh tạm thời và cuối cùng nhánh nhánh được thay thế bằng nhánh tạm thời. Nói cách khác, nhánh tạm thời chứa tất cả các thay đổi được thực hiện đối với nhánh (feature) và nhánh cha.

Vì một số lý do, một số nhà phát triển không hiểu sự khác biệt. Vì vậy, các nhà phát triển SVN đã xóa tùy chọn --reintegrate trong SVN 1.8. Với phiên bản này, công cụ sẽ tự động phát hiện, nếu sử dụng tính năng hợp nhất đồng bộ hoặc hợp nhất lại.

Nếu bạn sử dụng phiên bản cũ hơn, bạn nên sử dụng tùy chọn --reintegrate cho hợp nhất tái hòa nhập. Lưu ý rằng chi nhánh (tính năng) vẫn có thể được sử dụng sau khi tái hòa nhập, nếu bạn lưu ý một số điều. Cuốn sách SVN giải thích nó cũng:

+0

Có phải "đồng bộ hóa hợp nhất" chỉ là 'hợp nhất' thuần túy, tức là' hợp nhất' mà không có '--trích hợp' không? –

+0

Có, một _sync merge_ là mặc định - không có '--reintegrate',' -c' và '-r'. – nosid

2

Nâng cấp lên svn 1.8 và không worrry về nó nữa, nó sẽ tự động tìm ra những việc cần làm.

từ svn 1.8 release notes:

Trong hòa trộn mà hợp nhất tất cả các phiên bản đủ điều kiện từ một chi nhánh khác, Subversion 1.8 sẽ tự động quyết định có hay không việc hợp nhất được tích hợp lại một chi nhánh. Do đó, việc tái hòa nhập một nhánh không còn yêu cầu tùy chọn --reintegrate cho hoạt động chính xác nữa.

+0

Tôi vẫn cần phải xóa chi nhánh sau khi hợp nhất (hợp nhất - hòa nhập)? –

+1

Bạn không cần phải xóa chi nhánh sau khi tái hòa nhập nếu bạn làm theo [bước nhỏ này] (http://svnbook.red-bean.com/en/1.7/svn.branchmerge.advanced.html#svn.branchmerge. advanced.reintegratetwice). Tôi không biết tại sao Subversion không tự động làm điều này cho bạn. –