2009-11-18 24 views
31

Trong phiên bản lật đổ, tôi đã lập chi nhánh bây giờ tôi muốn hợp nhất nó trở lại vào thân cây. Tôi nên sử dụng tùy chọn nào?Tái hòa nhập một chi nhánh và hợp nhất một phạm vi sửa đổi

tái hòa nhập một chi nhánh

hoặc

hợp nhất một loạt các phiên bản

Tôi đã sử dụng Merge một loạt các phiên bản, nhưng tôi đã nhận được tất cả các loại lỗi xung đột cây. Bất kỳ ý tưởng những gì là sự khác biệt giữa hai?

+0

có thể trùng lặp của [SVN Hợp nhất một loạt các sửa đổi so với tái hòa nhập] (http://stackoverflow.com/questions/6575325/svn-merge-a-range-of-revisions-vs-reintegrate) – parvus

Trả lời

35

Khi làm việc với chi nhánh, bạn định kỳ nên sáp nhập dãy các phiên bản từ thân cây vào cành cây này sang keep the branch in sync. nếu bạn không vượt qua bất kỳ số phiên bản nào để hợp nhất svn và phiên bản máy chủ svn của bạn là 1.5 hoặc mới hơn, nó sẽ theo dõi việc hợp nhất bạn đã thực hiện trước đó và tự động hợp nhất các bản sửa đổi mới hơn.

Khi chi nhánh kết thúc, bạn nên hợp nhất các thay đổi vào lần cuối cùng, sau đó reintegrate nó trở lại vào thân cây.

4

Rùa SVN Merge vs tái hoà giải thích:

TortoiseSVN Documentation

+1

zachary không bao giờ được đề cập bằng cách sử dụng Rùa, vì vậy tôi sẽ không nhất thiết phải xem xét điều này "ngay từ nguồn". – Powerlord

+0

Tôi sẽ chỉnh sửa bài đăng của mình; nhưng bạn đang có một chút khó hiểu, phải không? Rùa là một khách hàng SVN. Làm thế nào Merge và Reintegrate khác nếu tôi đang sử dụng dòng lệnh SVN, Tortoise, SVNCOM, hoặc WebSVN? –

+2

Tôi sẽ thành thật một cách trung thực: Tortoise's Merge một loạt các tùy chọn sửa đổi là rất nhiều stupider hơn so với svn dòng lệnh của khách hàng hợp nhất, vì hành vi đó xảy ra khi bạn để trống danh sách sửa đổi. – Powerlord

6

Dưới đây là các bước tôi thường làm theo để hợp nhất.

1.

svn log -v --stop-on-copy http://mysvnrepo/mybranch

này sẽ cung cấp cho bạn phiên bản repo khi bạn lần đầu tiên tạo ra các chi nhánh. Giả sử đó là AAAA.

2.

svn log -v -rAAAA: TRỤ http://myrepo/trunk

này sẽ cung cấp cho bạn những thay đổi được thực hiện trong thân cây sau khi bạn lấy ra chi nhánh. Điều này là không cần thiết nhưng tôi sử dụng điều này để có được một ý tưởng về những gì tôi nên mong đợi để hợp nhất hiện nay.

3.

Trong trường hợp bước2. báo cáo thay đổi thân cây, đi đến không gian làm việc chi nhánh và chạy

svn merge --dry ương -rAAAA: TRỤ http://myrepo/trunk.

Điều này sẽ báo cáo tất cả các thay đổi được thực hiện trong thân từ khi bạn phân nhánh thành mybranch - xem qua và chạy lại lệnh mà không có tùy chọn --dry-run để thực hiện hợp nhất thực tế.

4.

Cam kết không gian làm việc nhánh sau hợp nhất với nhận xét có liên quan. (ví dụ: "Các thay đổi được kết hợp từ phiên bản thân cây AAAA qua XXXX" - trong đó XXXX là phiên bản HEAD hiện tại) Điều này sẽ trả về HEAD để nói phiên bản YYYY.

5.

Tiếp theo trong không gian làm việc thân cây, gõ

svn merge --dry ương -rAAAA: TRỤ http://myrepo/branch.

Điều này sẽ báo cáo về những thay đổi được thực hiện trong chi nhánh sau khi được tạo cho đến bây giờ. Xem qua báo cáo để xác minh điều gì đang được hợp nhất/xung đột, v.v., rồi chạy lệnh mà không có tùy chọn --dry-run, để thực sự thực hiện hợp nhất.

6.

xung đột Giải quyết nếu có bằng tay, svn chạy giải quyết để nói với repo rằng xung đột của bạn được tất cả bây giờ được giải quyết, và sau đó thực hiện các cam kết với một thông điệp có liên quan, ví dụ như "sáp nhập từ mybranch để thân cây - những thay đổi được bao gồm từ bản sửa đổi AAAA đến YYYY ". Điều này giúp lần sau khi bạn chạy nhật ký và sau đó bạn có thể thực hiện thao tác hợp nhất tiếp theo từ YYYY đến HEAD tại điểm đó.

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