Vì vậy, tôi đã quen với điều này:
http://svnbook.red-bean.com/en/1.5/svn.advanced.vendorbr.htmlCách tốt nhất để xử lý các chi nhánh của chi nhánh nhà cung cấp trong SVN là gì?
Câu hỏi của tôi là làm thế nào để bạn xử lý một chi nhánh nhà cung cấp đó có cả phát hành ổn định và một chi nhánh alpha/beta mà bạn muốn tích hợp không?
Vì vậy, giả sử bạn làm theo ví dụ ban đầu từ sách SVN. Bạn muốn có:
svn: // localhost/home/svn/vendor/libcomplex/hiện
svn: //localhost/home/svn/vendor/libcomplex/1.0
svn: // localhost/home /svn/vendor/libcomplex/1.1 (giống như hiện tại)
Bây giờ, nói rằng bạn có hai phiên bản của riêng 'calc' ứng dụng của bạn:
calc (điều này chủ yếu là thân cây == calc 2.0)
calc -1.0 (phát hành ra công khai)
Giả sử sử dụng calc-1.0 libcomplex 1.0 và calc (trong thân cây) đã sử dụng libcomplex 1.1, vẫn đang được phát triển.
Có lỗi trong libcomplex 1.0 và phiên bản mới được phát hành để sửa lỗi đó: libcomplex 1.0.1. Các nhà duy trì libcomplex cũng đã đưa bugfix này vào libcomplex 1.1.
Bạn chưa sẵn sàng phát hành calc 2.0, vì vậy bạn cần tích hợp libcomplex 1.0.1 vào chi nhánh nhà cung cấp của bạn và sau đó cập nhật calc-1.0 để tạo bản sửa lỗi.
Nó sẽ đi đâu?
Bạn không thể đặt nó tại svn: // localhost/home/svn/vendor/libcomplex/hiện tại vì 1.1 hiện đang sống ở đó.
Bạn có sao chép svn: //localhost/home/svn/vendor/libcomplex/1.0 vào svn: //localhost/home/svn/vendor/libcomplex/1.0.1 và sau đó đưa vào bản phát hành mới không? Bằng cách đó bạn có thể sử dụng svn để hợp nhất sự khác biệt giữa 1,0 và 1.0.1 đến calc-1.0.
Trong ví dụ trước, tôi có một nhánh cho bản phát hành của tôi: calc 1.0. Thư mục của nhà cung cấp không được chứa trong calc. Bạn có gợi ý rằng/nhà cung cấp được phân nhánh không? Để rõ ràng ở đây là ví dụ tôi mô tả: /vendor/libcomplex/ /calc/trunk/ /calc/branches/1.0/ Đề xuất của bạn không sử dụng "hiện tại" và chỉ sử dụng cấu trúc thư mục sẽ không cho phép hợp nhất các thay đổi giữa các phiên bản thành thân cây, do đó sẽ đánh bại mục đích. Bạn cần lịch sử thay đổi này để cho phép hợp nhất các thay đổi vào thân cây nơi bạn đã sửa đổi nguồn nhà cung cấp ban đầu. –
Cách tiếp cận của tôi là dành cho công việc khi tất cả những gì bạn đang làm là sử dụng các phiên bản đã phát hành. Nếu bạn cũng đang sửa đổi nguồn, thì có thể hữu ích khi xử lý mã của nhà cung cấp làm mã của riêng bạn (ví dụ bao gồm mã trong nhánh thân chứ không phải nhà cung cấp dưới dạng thư mục riêng). Tuy nhiên, cách tiếp cận của bạn cũng có ý nghĩa. Tạo chi nhánh nhà cung cấp/libcomplex/1.0.1, hợp nhất mọi tùy chỉnh và cập nhật bản phát hành calc 1.0 để trỏ tới nhà cung cấp/libcomplex/1.0.1, sau đó phát hành calc 1.0.1. Bất cứ khi nào libcomplex 1.1 đã sẵn sàng, hãy hợp nhất các tùy chỉnh, xây dựng calc2.0 và bạn tốt để đi. Trunk không bao giờ trỏ đến 1.0.1 –