Tôi thấy hai cách riêng biệt để giải quyết vấn đề này:
1.
thay đổi đáng kể để thân cây (giống như một refactoring lớn) không nên được thực hiện trong cốp xe. Họ nên được thực hiện trong một chi nhánh và sáp nhập trở lại vào thân cây khi họ đủ ổn định.
Định kỳ các thay đổi đối với thân cây phải được hợp nhất với các nhánh bảo trì khác. Lý do chỉ hợp nhất việc tái cấu trúc vào thân cây khi nó ổn định là vì sau đó chúng sẽ được hợp nhất vào các nhánh bảo trì. Tuy nhiên, nếu không có cơ hội để thực hiện những thay đổi này ổn định thì tùy chọn 2 sẽ tốt hơn.
Sau khi thay đổi các chi nhánh bảo trì đã được thực hiện, sau đó chúng có thể được hợp nhất trở lại vào thân cây.
2.
Tạo chi nhánh của các chi nhánh bảo trì (một nhánh cho mỗi nhánh). Điều này sẽ được sử dụng để sáp nhập thân cây với từng nhánh bảo trì.(Lưu ý rằng việc sử dụng SVN externals hoặc tương đương nên được sử dụng để hạn chế số lượng các chi nhánh bảo trì).
Làm tất cả việc tái cấu trúc của bạn trong thân cây và hợp nhất vào các chi nhánh của các chi nhánh bảo trì. Khi bạn giải phóng hoặc nghĩ rằng thân cây ổn định thì hãy hợp nhất các nhánh của bản bảo trì này lại vào các nhánh tương ứng của chúng. Sau đó, chúng có thể được hợp nhất trở lại vào thân cây.
Thực tế, mỗi nhánh bảo dưỡng sẽ trở thành "nhánh phụ".
Lưu ý rằng kịch bản này nêu bật sự cân bằng giữa bảo trì trong tương lai và bảo trì trả trước. Càng nhiều chi nhánh và sự khác biệt bạn có trong mã của bạn, việc bảo trì trả trước nhiều hơn là bắt buộc. Phần tốt là việc bảo trì gia tăng dễ dàng hơn nhiều.
Nguồn
2009-02-27 06:25:00
Rất nhiều khả năng mở. Câu trả lời tuyệt vời Greg! –
Tất nhiên một COULD cũng áp dụng việc tái cấu trúc cho các nhánh bảo trì. Nhưng trong 99 trong số 98 trường hợp, điều này sẽ có nhiều công việc. –
@Jens: Trừ khi bạn có kế hoạch để _develop_ các chi nhánh "bảo trì", chỉ sửa chữa những gì bị hỏng. Khách hàng của bạn muốn sự ổn định, không phải mã sạch. –