tại thời điểm chúng tôi sử dụng Subversion để kiểm soát nguồn, nhưng tất cả công việc hợp nhất cho bản phát hành của chúng tôi được thực hiện thủ công. Chúng tôi phát hành vài lần một năm, do đó, tạo một chi nhánh cho mỗi bản phát hành. Tất cả các công việc từ các chi nhánh trước đó phải làm cho nó thành những cái sau này. Làm việc trên các chi nhánh sau đó không được đưa vào các nhánh trước đó (đây là trong hợp đồng của chúng tôi). Tôi tin rằng điều này được gọi là Mô hình quảng cáo. Tôi nghĩ biểu đồ sau đây minh họa tốt nhất quy trình làm việc mong muốn của chúng tôi, với các nhánh được tạo ra bất cứ khi nào công việc bắt đầu trên bản phát hành mới và thay đổi từ các nhánh trước đó sang các phiên bản mới hơn.Sử dụng Subversion với Mô hình quảng cáo
| 1 | |\ | \ | 2 3 | |\| 4 | | |\ 5 | \ | 6 | | | 7 |\|\| | |\| 8 9 |\ | | | \ |\| | 10 x |\| | | |\| | | | a b c d
- có công việc mô hình này suôn sẻ sử dụng Subversion bất chấp việc thiếu một thân cây có ý nghĩa?
- Công cụ theo dõi hợp nhất tự động có hoạt động đối với các bản cập nhật từ các nhánh trước đó sang các phiên bản mới hơn không?
- Bạn có thể đóng/xóa/bỏ qua nhánh (trong nhánh phát hành ví dụ 'a') này mà không cần tích hợp lại không?
- Bạn có thể tạo các chi nhánh của mỗi chi nhánh phát hành và hợp nhất công việc theo dõi cho các chi nhánh này không? (Họ sẽ thực hiện theo mô hình tạo/hợp nhất/tái hòa nhập được đề xuất.)
Chỉnh sửa - thêm thông tin khác.
Lý do mô hình Trunk không ổn định truyền thống có thể không phù hợp được minh họa bằng biểu đồ sau. Tính năng cho mỗi bản phát hành không nhất thiết phải hoàn thành theo thứ tự phát hành (một số khách hàng có thể chậm để xác nhận yêu cầu). Chúng tôi muốn tuyên truyền những thay đổi từ các nhánh trước đó sang các nhánh sau càng sớm càng tốt.
a | 1 | b|\ a | \ | 2 3 | | | 4 | b/|c | /5 | | | 6 7 | | b c a
Trong trường hợp này, chúng tôi muốn có tính năng 2 (hoàn thành vào chi nhánh a) trong chi nhánh b, nhưng vì đây là một đứa trẻ để cha mẹ hợp nhất, và do đó không được hỗ trợ bởi Subversion, nó sẽ phải được thực hiện bằng tay. Tương tự, đối tượng địa lý 6 sẽ phải được hợp nhất thủ công hai lần. Tôi dự đoán đây là một quá trình tương đối chậm và dễ bị lỗi so với các lần hợp nhất được theo dõi tự động.
Câu trả lời hay. Sự cân bằng tôi có thể thấy là trong mô hình của bạn có thể cần phải lặp lại các lần hợp nhất, ví dụ một bugfix cam kết với trunk phải được hợp nhất với tất cả các nhánh phát hành mở. Nếu một trong số họ bị bỏ lỡ, các bugfix sẽ bị bỏ lỡ từ một bản phát hành. Với mô hình quảng cáo, có vẻ như không có cơ hội để thiếu các bản sửa lỗi này, do đó sẽ yêu cầu ít công việc thủ công hơn. Tuy nhiên có vẻ như mô hình của tôi đi lạc xa từ vùng thoải mái của SVN mà nó đang thiết lập chuông báo động, do đó tôi không cảm thấy an toàn khi mạo hiểm mã nguồn của chúng tôi với nó. Tôi sẽ đưa nó cho đội. Cảm ơn! –