2009-09-02 27 views
13

Đây là tình huống: Trên một nhánh cụ thể, một số thay đổi đã được hợp nhất trong từ thân cây và các thay đổi đối với chi nhánh đã được hợp nhất lại thành thân cây.Đang hợp nhất một sự hợp nhất lại một vấn đề trong lật đổ?

Các câu hỏi tôi có là thế này: Điều gì, nếu bất cứ điều gì, không quản lý hợp nhất trong Subversion làm gì nếu tôi cố gắng hợp nhất lại vào thân từ chi nhánh một phiên bản đó là bản thân nó chỉ là một merge từ sự thân cây đến chi nhánh?

Điều này có gây ra sự cố không? Nếu vậy, loại gì? Hay đây có phải là một điều hoàn hảo hay không?

Hoặc tính năng hợp nhất mới chỉ coi những thay đổi đó giống như bất kỳ thay đổi nào khác và chỉ cần áp dụng chúng?

Trả lời

4

Đó là một kịch bản ngay cả khi hợp nhất theo dõi các phiên bản SVN mới hơn không thể xử lý tự động. Vì vậy, bạn đã chỉ định các bản sửa đổi bạn muốn hợp nhất trở lại vào thân cây theo cách thủ công và bạn phải chắc chắn loại trừ các sửa đổi được hợp nhất từ ​​thân cây đến chi nhánh.

Nếu bạn cố gắng sửa đổi các thay đổi đã là thân cây hiện tại, chúng sẽ được coi là sửa đổi bình thường. Điều này sẽ dẫn đến xung đột chắc chắn.

4

Nó phụ thuộc một phần vào phiên bản svn bạn đang sử dụng.

Trước 1.5, không có theo dõi hợp nhất nào cả, vì vậy bạn sẽ phải hợp nhất các bản chỉnh sửa bạn muốn quay lại. Hầu hết mọi người đã sử dụng tên tập lệnh "svnmerge" cho điều đó. Bạn có thể sử dụng điều này nếu bạn muốn, và đánh dấu các sửa đổi bạn đã thực hiện như sáp nhập - sau đó, svnmerge sẽ cung cấp cho bạn một số trợ giúp trong việc chọn các bản sửa đổi phù hợp và bỏ qua những bản đã được hợp nhất.

1.5 (và sau này) cung cấp một số tính năng theo dõi hợp nhất nhưng chưa đầy đủ tính năng. Trong trường hợp cụ thể của bạn (sáp nhập cả hai cách), tôi không nghĩ rằng theo dõi của svn có thể xử lý nó. Bạn có thể sẽ cần phải hợp nhất mỗi bản sửa đổi bạn muốn trở lại và ra bằng tay.

Cá nhân, khi tôi đang sử dụng các dự án sử dụng svn, tôi muốn tạo các nhánh ngắn ngủi và chỉ hợp nhất một chiều (trunk to branch) cho đến khi hợp nhất cuối cùng từ nhánh này sang nhánh khác. Một khi tôi đã làm điều đó, tôi hoặc là hợp nhất mọi thứ vào trong thân cây và đóng nhánh, hoặc tôi hợp nhất những gì tôi muốn và đóng nhánh. Hầu như không bao giờ tôi giữ cho chi nhánh còn sống, do các vấn đề hợp nhất có thể xảy ra (thật dễ mắc lỗi).

2

Sử dụng phiên bản 1.5 trở lên của phiên bản phụ, bạn phải chỉ định tùy chọn --reintegrate để hợp nhất svn để hợp nhất chỉ là bản sao của các lần hợp nhất trước đó "theo cách khác".

Lưu ý rằng 1) Bạn có biết khi nào nên sử dụng tùy chọn này 2) Đây sẽ là lần hợp nhất cuối cùng từ nhánh đó. Sau khi sáp nhập này svn sẽ xem xét chi nhánh để được chết và tiếp tục làm việc sẽ yêu cầu tiêu diệt và tái tạo chi nhánh.

Đây là trực tiếp từ svn docs, mặc dù tài liệu có thể sử dụng phân tích tốt hơn vào các phần phụ.

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