2012-04-15 13 views
16

Các trạng thái cuốn sách SVN như sau:SVN tái hòa nhập cùng cành cây này sang thân cây nhiều lần

Một khi bạn đã thực hiện một tái tích hợp nhất bạn không nên tiếp tục sử dụng nó để phát triển. Lý do cho điều này là nếu bạn cố gắng để đồng bộ hóa nhánh hiện tại của bạn khỏi thân cây sau đó, hợp nhất theo dõi sẽ thấy sự tích hợp của bạn dưới dạng thay đổi thân cây chưa được hợp nhất thành chi nhánh và sẽ cố gắng hợp nhất nhánh to-trunk hợp nhất trở lại chi nhánh! Giải pháp cho việc này đơn giản là tạo một chi nhánh mới từ thân cây để tiếp tục giai đoạn phát triển tiếp theo của bạn.

Trong trường hợp của tôi, tôi muốn tiếp tục sử dụng nhánh sau khi tái hòa nhập vào thân cây và tiếp tục tái hòa nhập vào nhiều lần. Tôi đã làm điều này và tôi đã gặp phải hai vấn đề chính:

  1. Tôi tiếp tục gặp phải các xung đột cây lạ khi tôi thử tích hợp lại.
  2. tôi tiếp tục nhận được một thông báo nói rằng một cái gì đó như "tái hòa nhập chỉ có thể được sử dụng nếu các phiên bản 280 qua 325 trước đây"

Làm thế nào để có được xung quanh vấn đề này nếu tôi muốn để có thể tái hòa từ một chi nhánh nhiều lần?

+3

Vì vậy, sách nói "không làm điều đó", nhưng bạn vẫn muốn làm điều đó? Điều đó không có ý nghĩa gì cả. Chỉ cần tạo ra các chi nhánh mới từ thân cây sau khi tái hòa nhập, giống như nó nói ... – Torious

+0

Tôi có một vấn đề tương tự. Tôi muốn đẩy các bản sửa lỗi từ chi nhánh của tôi vào trong thân cây, nhưng không được tái hòa nhập. Thật không may, 1.8 tự động tái tích hợp, ngay cả khi bạn không muốn nó. Tôi không thể tạo một nhánh mới, vì tất cả các nhánh của tất cả các dự án khác đều có cùng tên chi nhánh. Vấn đề của tôi là, a) bây giờ tôi đã làm điều này, tôi không biết làm thế nào để làm nó. b) làm cách nào để hợp nhất trong tương lai mà không cần tích hợp lại? Đây không phải là tùy chọn - không tích hợp lại. Tôi đã xem xét - chỉ -record, nhưng điều này không có ý nghĩa đối với trường hợp này? –

Trả lời

19

Bạn có thể sử dụng --record chỉ hợp nhất tùy chọn như đã giải thích trong SVN cuốn sách, phần Keeping a Reintegrated Branch Alive

Lưu ý rằng từ Subversion 1.8, điều này không còn cần thiết, như automatic reintegration merge đã được giới thiệu.

+0

Nếu tôi chỉ muốn hợp nhất từ ​​chi nhánh vào thân cây và không bao giờ theo cách khác, tôi có thể tích hợp lại nhiều lần với chi nhánh không? Tôi có cần phải làm thủ thuật --record-only không? – Vincent

+1

Có, bạn có thể. Trên Subversion 1.7, bạn cần phải thực hiện thủ thuật --record-only, trong khi trên Subversion 1.8 bạn không cần - tích hợp cũng không phải - chỉ-01ord- – rlovtang

+0

Phiên bản là một trong những máy khách hoặc máy chủ hoặc cả hai? – Vincent

2

Tôi đã nhìn thấy một số cách giải quyết trên Google nhưng chúng khiến tôi lo lắng là 'hack'. Để giải quyết nó, tôi quyết định làm những gì subversion là hinting trong tin nhắn. Tôi quay trở lại với chi nhánh của tôi và rõ ràng sáp nhập các phiên bản quy định:

~/python/orb $ svn merge -r 650:693 https://paulwhippconsulting.slsapp.com/source/orb/trunk 
~/python/orb $ svn commit -m 'merged revisions 650:693 from trunk' 
Sending  occl 

Committed revision 695. 

Một khi tôi đã làm điều này, tôi đã có thể quay trở lại bản sao làm việc của thân cây và tái hòa nhập các chi nhánh mà không cần bất kỳ vấn đề.

Tôi hy vọng điều này sẽ giúp