2008-11-26 23 views
6

Tôi chưa từng chia rẽ dự án trước đây nên tôi hơi bối rối về cách tiến hành. Tôi có một dự án mà tôi sử dụng một mình mà tôi phát hành như một dự án được cấp phép BSD (Dự án A). Tại nơi làm việc, tôi muốn sử dụng mã đó nhưng với các sửa đổi cụ thể cho công ty của chúng tôi (Dự án B) nhưng tôi muốn có thể vẫn cập nhật các tính năng đến từ mã cơ sở mà tôi phát hành.Forking Subversion Project

Cách tốt nhất để xử lý có hai nhánh của dự án và kết hợp các thay đổi từ Dự án A vào Dự án B mà không ghi đè các mod tôi thực hiện cho Dự án B là gì?


Nó đang được chia thành hai thực thể với repo chính của tôi trên Google Code và sau đó là phiên bản công ty trong repo nội bộ của riêng mình. Câu hỏi của tôi là giữ tất cả mọi thứ lành mạnh vì nó đến thời gian để nâng cấp từ bản phát hành để phát hành nhưng giữ sửa đổi tùy chỉnh.

Trả lời

3

Xem phần được đề cập trước đây The Subversion Book discussing "vendor branches". Điều này dicusses làm thế nào để đối phó với một tiểu dự án bên ngoài, do đó bạn có thể cả hai hợp nhất trong các thay đổi khi dự án bên ngoài được cập nhật và hợp nhất trong sửa đổi địa phương của riêng bạn.

Phương pháp này sẽ hoạt động tốt nếu bạn xử lý phiên bản công khai của dự án (được lưu trữ trên Google Code) dưới dạng phụ thuộc mở rộng trong mã companie của bạn.

1

Trong Subversion, 'forking' là 'branching' và 'Kết hợp các thay đổi' là 'hợp nhất'.

Tôi không nghĩ rằng bạn có thể thoát ra mà không đọc các phần có liên quan của The Subversion book khá cẩn thận. Nó được viết rất rõ ràng và dễ hiểu khi bạn dành thời gian cho nó.

+0

Vâng, tôi biết :) Vấn đề của tôi là có hai repos riêng biệt thay vì phân nhánh/sáp nhập tất cả trong một. – dragonmantank

+0

Bạn không thể chi nhánh, nhưng bạn có thể xuất phiên bản hiện tại của dự án và thêm nó vào repo khác (để bạn có một bản sao hoàn toàn mới). Khi đó, bạn vẫn có thể hợp nhất giữa chúng. – gbjbaanb

0

Trừ khi công việc sẵn sàng phát hành những sửa đổi đó trở lại dự án ban đầu, tôi sẽ bắt đầu một dự án SVN hoàn toàn mới tại đó (Dự án B). Sau đó, khi bạn tiến hành bản phát hành tiếp theo của dự án được cấp phép BSD (Dự án A), bạn có thể thực hiện các thay đổi từ bản phát hành cuối cùng và sau đó áp dụng lại cho Project B.

nhưng bạn phải hành động như hai thực thể khác nhau tùy thuộc vào bạn đang ở đâu (Word hoặc Home).

IFF Mặt khác, công việc sẵn sàng phát hành những sửa đổi đó trở lại dự án ban đầu, sau đó lựa chọn tốt hơn là tạo chi nhánh và hợp nhất các thay đổi của bạn với Project A thành Projet B (định kỳ).