Tôi có thể thiếu một cái gì đó, nhưng khi tôi đã sử dụng svn hợp nhất, tôi đã luôn luôn phải có được số sửa đổi ngay nếu tôi muốn nó hoạt động chính xác.
Vì vậy, nếu bạn phân nhánh (hoặc cuối cùng sáp nhập) tại phiên bản 100, thân hiện đang ở 200, và bạn muốn kết hợp thay đổi từ thân cây vào chi nhánh của bạn, sau đó trong thư mục làm việc chi nhánh bạn làm:
svn merge -r 100:200 trunkURL
Sau đó, tôi nghĩ bạn sẽ thấy một xung đột, mà bạn giải quyết và kiểm tra. Bạn làm một điều tương tự trong thư mục làm việc thân cây để hợp nhất từ chi nhánh của bạn trở lại vào thân cây.
svn hợp nhất mà không -r khác với hai vị trí bạn chỉ định và áp dụng khác biệt đó cho thư mục làm việc. Vì vậy, tôi suy đoán rằng những gì đã xảy ra là không có xung đột, bởi vì thư mục làm việc của bạn phù hợp với người đứng đầu chi nhánh. Vì vậy, sự khác biệt giữa người đứng đầu của chi nhánh và người đứng đầu của thân cây có thể được áp dụng cho thư mục làm việc của bạn mà không có bất kỳ vấn đề. Đây không phải là những gì bạn muốn làm: tất cả những gì nó làm là thay đổi thư mục làm việc của bạn để phù hợp với thân cây. Hãy thử thực hiện một thay đổi khác trên chi nhánh, đăng ký và lặp lại quy trình. Nếu hợp nhất undoes rằng thay đổi (vì nó không phải là trên thân cây), sau đó tôi phải về hình thức này svn hợp nhất, nhưng như tôi nói tôi đã không sử dụng nó.
[Edit: trước khi phiên bản svn 1,5 ...]
danh bạ và các chi nhánh làm việc không phải là điều tương tự trong SVN, và gây phiền nhiễu như nó có, bạn phải giải thích cho sự khác biệt. SVN cần thêm thông tin để thực hiện việc hợp nhất chi nhánh bạn muốn, hơn là thực hiện cập nhật hoặc đăng ký, bởi vì nó không tự động tính đến chi nhánh xảy ra theo cách mà nó luôn kiểm tra thư mục làm việc đã được kiểm tra ở đâu. Tôi chắc chắn có một lý do cho điều đó, tôi chỉ không biết chắc chắn nó là gì: có thể bởi vì bản sao svn là cho nhiều thứ hơn là chỉ các chi nhánh.
[Chỉnh sửa ... nhưng theo nhận xét của Joshua McKinnon về câu trả lời này, 1,5 svn hỗ trợ hợp nhất nhánh hợp lệ, thực hiện những gì bạn muốn tự động.Chỉ định URL bạn đang hợp nhất và chạy lệnh trong thư mục làm việc của bất kỳ thứ gì bạn đang hợp nhất. Vì vậy, trong trường hợp này, hãy thử
svn merge trunkURL
và bạn sẽ thấy xung đột. Bạn có thể phải phục hồi các thư mục làm việc đầu tiên.]
Vì vậy, bạn 1) phân nhánh 2) sửa đổi dòng X thành "abc" trên thân 3) chuyển sang nhánh 4) sửa đổi dòng X thành "def" trên nhánh 5) đã hợp nhất? Nội dung của dòng X trước khi bạn sửa đổi nó thành "abc" là gì? –
tôi đoán rằng sẽ có một sự khác biệt phiên bản tại văn phòng của tôi b/w svn khách hàng của tôi và máy chủ svn, như tôi nhớ rằng tôi vừa nâng cấp phiên bản svn của tôi lên 1.5 và điều đó đã không xảy ra tại máy chủ nơi repos tồn tại .. vì vậy thực tế là tôi đã không nhận được xung đột, có thể là kết quả của phiên bản khác biệt. – ashishsony