2009-08-21 19 views
5

Có ai đã thử sử dụng mô tả đậu phụ được mô tả trong Practical Perforce bởi Laura Wingerd cùng với svn không?Sử dụng quy mô đậu phụ với svn

Quy mô đậu phụ cho chúng ta biết cách truyền bá thay đổi giữa các nhánh (codelines). Những thay đổi trong các nhánh ổn định nên được sáp nhập vào các nhánh kém ổn định hơn (từ công ty đến mềm), và những thay đổi trong các nhánh kém ổn định nên được sao chép vào các nhánh ổn định (mềm đến khó). Xem How Software Evolves

Kết quả này trong các nhánh phát triển nơi các thay đổi được thực hiện cho các nhánh ổn định hơn đang được hợp nhất, và do đó cải thiện mã trong chi nhánh phát triển mang lại sự phát triển và sửa lỗi mới.

Figure taken from Practical Perforce (ISBN 10: 0-596-10185-6) http://dl.getdropbox.com/u/136976/tofu%20scale.png

Vì vậy, câu hỏi là: Bạn có thể làm điều này trong svn và nếu; làm thế nào để bạn cập nhật từ cha mẹ khi làm việc trên một chi nhánh? Tôi biết từ CVS, rằng việc cập nhật từ một chi nhánh khác cung cấp cho bạn rất nhiều vấn đề khi bạn muốn kết hợp thay đổi của bạn trở lại vào chi nhánh mẹ (thường là Mainline)

+1

Bạn có thể giải thích "quy mô đậu phụ" có nghĩa là gì không? – starblue

+0

"Các thay đổi nên được sáp nhập từ các nhánh ổn định đến các nhánh ít ổn định hơn và các thay đổi phải được sao chép theo hướng ngược lại". - một trong số đó là các tính năng? – peterchen

+0

Tôi không thấy làm thế nào đây là một câu hỏi – zvolkov

Trả lời

3
  1. Sử dụng standard trunk/, branches/, tags/ structure
  2. Sử dụng trunk/ như đường chính của bạn
  3. Tạo chi nhánh để phát triển và phát hành trong branches/ - bạn có thể phân biệt chúng bằng cách sử dụng quy ước đặt tên hoặc thậm chí thay thế branches/ với development/release/
  4. sử dụng svn merge để thực hiện cả việc hợp nhất và sao chép - hãy đọc Advanced Merging trước tiên
2

Có, bạn có thể làm điều đó trong Subversion, thực hành tiêu chuẩn ít nhiều.

Ý tưởng là hợp nhất từ ​​ổn định hơn với ít thay đổi hơn với mức độ ít ổn định hơn, để giảm thiểu những thay đổi không liên quan sẽ làm cho việc hợp nhất trở nên khó khăn hơn.

Việc hợp nhất trở lại đường chính được thực hiện bằng cách hợp nhất tất cả thay đổi từ đường chính vào nhánh và sau đó sao chép nhánh đang thay thế đường chính bằng nhánh đã hợp nhất.

3

Đọc thêm về chủ đề tôi tìm thấy những gì tôi tin là một mô tả chính xác về những gì cần thiết để thực hiện loại tuyên truyền thay đổi này giữa các nhánh trong svn.

Được mô tả trong sách Version Control With Subversion của C. Michael Pilato et al. trong chương con Basic Merging - Keeping a Branch in Sync

Phần sau được trích dẫn từ sách.

Subversion nhận thức được lịch sử chi nhánh của bạn và biết khi nào nó được tách ra khỏi thân cây. Để nhân rộng các thay đổi thân cây mới nhất, lớn nhất cho chi nhánh của bạn, trước tiên hãy đảm bảo bản sao làm việc của chi nhánh của bạn là "sạch" - không có sửa đổi cục bộ nào được báo cáo bởi trạng thái svn.Sau đó chỉ cần chạy:

$ svn merge http://svn.example.com/repos/calc/trunk 

Một khi bạn có một bản sao làm việc sạch sẽ của thân cây, bạn đã sẵn sàng sáp nhập chi nhánh của bạn trở lại vào nó:

$ pwd 
/home/user/calc-trunk 

$ svn update # (make sure the working copy is up to date) 
$ svn merge --reintegrate http://svn.example.com/repos/calc/branches/my-calc-branch 
$ svn commit -m "Merge my-calc-branch back into trunk!" 

Hãy đọc toàn bộ chương (và thậm chí cả cuốn sách) trước khi bắt đầu về điều này. Đó là khuyến cáo đọc.

Các vấn đề liên quan