2009-10-02 25 views
8

Chúng tôi hiện có 2 chi nhánh:svn rebasing và lịch sử mất

/repo/branch/current_version 
/repo/branch/next_version 

current_version là một chi nhánh nơi mà tất cả các nhà phát triển hiện đang hoạt động.

Chúng tôi bắt đầu phiên bản tiếp theo và tạo ra next_version chi nhánh từ một số điểm trong current_version, trong khi làm việc trên current_version vẫn đang tiếp tục. Trong next_version chúng tôi thực hiện một số phát triển và trong những tháng tới chi nhánh sẽ trở thành chính của chúng tôi, nơi mà tất cả các phát triển sẽ được thực hiện.

Vì có sự phát triển trên current_branch, chúng tôi đã nghĩ định kỳ (giả sử một lần trong 2 tuần) để rebase next_version. Điều này để giữ cho cả hai nhánh đồng bộ, vì vậy khi tất cả các nhà phát triển cuối cùng sẽ thả current_branch và chuyển sang next_release, next_release sẽ chứa tất cả tính năng của current_branch được tích hợp và thử nghiệm.

Sự cố đang được rebasing. Thực tế việc rebasing đang hợp nhất các cam kết mới nhất của current_branch thành next_version. Vì vậy, nếu tôi sẽ kiểm tra lịch sử của các tệp đã cam kết trong next_release, tất cả những gì tôi sẽ thấy là các cam kết hợp nhất chứ không phải lịch sử (commit/authors/annotation) của current_version.

Tôi có bỏ lỡ điều gì đó không?

Trả lời

20

Không, bạn chưa bỏ lỡ bất cứ điều gì. Đây là một vấn đề lớn với việc sử dụng SVN để kiểm soát phiên bản.

Tôi đã liên tục gặp lại công việc cuối cùng của mình. Mỗi khi ai đó cam kết một cái gì đó để current_branch (để gắn bó với thuật ngữ của bạn), thông điệp cam kết sẽ phải được sao chép theo cách thủ công để nó có thể được sử dụng trong thông điệp cam kết hợp nhất. Điều này nhanh chóng trở thành một nỗi đau lớn.

Đó là lý do tại sao phần mềm kiểm soát phiên bản mới đã xuất hiện với khả năng hợp nhất tốt hơn (Git, Mercurial và Bazaar).


EDIT: Rõ ràng SVN đã khắc phục vấn đề này. SVN 1.5 trở lên kết hợp merge-sensitive logs and annotations. Sử dụng cờ --use-merge-history (-g) với svn merge và svn đổ lỗi để xem các thông điệp cam kết từ nhánh đã hợp nhất.

+4

@ ThisSuitIsBlackKhông nhận xét đã bị xóa của bạn về tính năng svn 1.6 "Hợp nhất nhạy cảm Nhật ký và chú thích" là những gì tôi đang tìm kiếm. Sử dụng flag -use-merge-history (-g) cùng với svn log/blame sẽ thực hiện công việc. Tôi cũng thấy tính năng này trong 1,5. Cập nhật câu trả lời của bạn và tôi sẽ chấp nhận nó :) – dimba

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