Hợp nhất

Trường hợp các chi nhánh được sử dụng để duy trì các dòng phát triển riêng biệt, ở giai đoạn nào đó, bạn sẽ muốn kết hợp các thay đổi được thực hiện trên một chi nhánh trở lại vào thân cây, hoặc ngược lại.

It is important to understand how branching and merging works in Subversion before you start using it, as it can become quite complex. It is highly recommended that you read the chapter Branching and Merging in the Subversion book, which gives a full description and many examples of how it is used.

Điểm tiếp theo cần lưu ý là hợp nhất luôn luôn diễn ra trong một bản sao làm việc. Nếu bạn muốn kết hợp những thay đổi vào một chi nhánh, bạn phải có một bản sao làm việc cho chi nhánh đó kiểm xu, và gọi trình hướng dẫn hợp nhất từ ​​bản sao làm việc bằng cách sử dụng TortoiseSVN Hợp nhất ... .

Nói chung, đó là một ý tưởng tốt để thực hiện một hợp nhất thành một bản sao làm việc chưa sửa đổi. Nếu bạn đã thực hiện thay đổi khác trong WC của bạn, cam kết những cái đó trước. Nếu hợp nhất không như bạn mong đợi, bạn có thể muốn phục hồi các thay đổi, và lệnh Hoàn nguyên sẽ loại bỏ tất cả thay đổi bao gồm bất kỳ thay đổi bạn đã thực hiện trước khi hợp nhất.

Có ba trường hợp phổ biến cho việc sáp nhập được xử lý theo những cách hơi khác nhau, như mô tả dưới đây. Trang đầu tiên của hướng dẫn hợp nhất yêu cầu bạn chọn phương pháp nào bạn cần.

Hợp nhất một phạm vi các sửa đổi

Phương pháp này bao gồm các trường hợp khi bạn đã thực hiện một hoặc nhiều sửa đổi đến một chi nhánh (hoặc thân cây) và bạn muốn chuyển đổi các thay đổi trên đến một chi nhánh khác nhau.

What you are asking Subversion to do is this: Calculate the changes necessary to get [FROM] revision 1 of branch A [TO] revision 7 of branch A, and apply those changes to my working copy (of trunk or branch B).

If you leave the revision range empty, Subversion uses the merge-tracking features to calculate the correct revision range to use. This is known as a reintegrate or automatic merge.

Hợp nhất hai cây khác nhau

This is a more general case of the reintegrate method. What you are asking Subversion to do is: Calculate the changes necessary to get [FROM] the head revision of the trunk [TO] the head revision of the branch, and apply those changes to my working copy (of the trunk). The net result is that trunk now looks exactly like the branch.

If your server/repository does not support merge-tracking then this is the only way to merge a branch back to trunk. Another use case occurs when you are using vendor branches and you need to merge the changes following a new vendor drop into your trunk code. For more information read the chapter on vendor branches in the Subversion Book.

Hợp nhất một Phạm vi Các sửa đổi

Hình 4.51. Tình hướng dẫn Hợp nh - Chọn Phạm vi Sửa đổi

Tình hướng dẫn Hợp nh - Chọn Phạm vi Sửa đổi


Trong mục Từ: nhập vào URL thư mục đầy đủ của chi nhánh hoặc thẻ có chứa các thay đổi mà bạn đưa đến bản sao làm việc của bạn. Bạn cũng có thể nhấp chuột vào ... để duyệt qua các kho lưu trữ và tìm những chi nhánh mong muốn. Nếu bạn đã sáp nhập từ chi nhánh này trước đó, thì chỉ cần sử dụng danh sách thả xuống cho thấy một lịch sử của các URL được sử dụng trước đó.

Nếu bạn đang hợp nhất từ một nhánh được đổi tên hoặc bị xóa thì bạn sẽ phải đi ngược đến bản chỉnh sửa mà nhánh đó vẫn tồn tại. Trong trường hợp này bạn cũng sẽ phải chỉ định bản chỉnh sửa như một bản mốc trong phạm vi các bản chỉnh sửa đang được hợp nhất (xem phía dưới), nếu không việc hợp nhất sẽ thất bài khi nó không thể tìm được đường dẫn đó tại bản CHÍNH.

Trong trường Phạm vi sửa đổi để hợp nhất nhập vào danh sách các phiên bản bạn muốn kết hợp. Đây có thể là một bản sửa đổi duy nhất, một danh sách các bản sửa đổi cụ thể cách nhau bằng dấu phẩy, hoặc một loạt các bản sửa đổi được phân cách bởi một dấu gạch ngang, hoặc bất kỳ sự kết hợp của những cái đó.

Nếu bạn cần phải chỉ định một bản sửa đổi peg cho hợp nhất, bổ sung sửa đổi peg vào cuối của các phiên bản, ví dụ như 5-7,[email protected] . Trong ví dụ trên, các phiên bản 5,6,7 và 10 sẽ được sáp nhập, với 3 là bản sửa đổi peg.

Quan trọng

Có một sự khác biệt quan trọng trong cách một phạm vi sửa đổi được chỉ ra với TortoiseSVN so với các dòng lệnh máy khách. Cách dễ nhất để hình dung nó là nghĩ đến một hàng rào với đồn và tấm hàng rào.

Với các dòng lệnh máy khách bạn chỉ ra các thay đổi để hợp nhất sử dụng hai bản sửa đổi đồn hàng rào mà chỉ ra các điểm trước khi sau khi .

Với TortoiseSVN, bạn chỉ định tập hợp thay đổi để hợp nhất sử dụng hàng rào tấm . Lý do cho việc này trở nên rõ ràng khi bạn sử dụng hộp thoại tường trình để xác định các sửa đổi để sáp nhập, khi mỗi b sửa đổi xuất hiện như một tập hợp thay đổi.

Nếu bạn đang hợp nhất các bản chỉnh sửa theo các mẫu lớn, phương pháp chỉ ra trong sách Subversion sẽ đòi hỏi bạn hợp nhất 100-200 lần này và 200-300 vào lần tới. Tới TortoiseSVN bạn sẽ hợp nhất 100-200 vào lần này và 201-300 vào lần tới.

Sự khác biệt này đã tạo ra rất nhiều sự nóng bỏng trên các danh sách gửi thư. Chúng tôi thừa nhận rằng có một sự khác biệt từ các dòng lệnh máy khách, nhưng chúng tôi tin rằng đối với phần lớn người sử dụng giao diện đồ họa dễ sẽ dàng hơn để hiểu được phương pháp mà chúng tôi đã thực hiện.

Cách dễ nhất để chọn phạm vi các bản sửa đổi bạn cần là bấm vào Hiện Tường Trình , vì điều này sẽ liệt kê những thay đổi gần đây với lời bình tường trình của họ. Nếu bạn muốn kết hợp các thay đổi từ một phiên bản duy nhất, chỉ cần chọn sửa đổi đó. Nếu bạn muốn kết hợp thay đổi từ một số sửa đổi, thì chọn phạm vi đó (bằng cách sử dụng phím Shift -modifier). Nhấp vào OK và danh sách các số sửa đổi để hợp nhất sẽ được điền vào cho bạn.

Nếu bạn muốn kết hợp thay đổi trở lại ra khỏi bản sao làm việc của bạn, để quay lại một sự thay đổi đã được cam kết, lựa chọn các phiên bản để trở lại và chắc chắn rằng hộp kiểm Đảo ngược hợp nhất được ch.

Nếu bạn đã sáp nhập một số thay đổi từ chi nhánh này, hy vọng là bạn sẽ để lại lưu ý về việc sửa đổi cuối cùng được sáp nhập trong thông điệp tường trình khi bạn cam kết thay đổi. Trong trường hợp đó, bạn có thể sử dụng Hiện Tường Trình cho Bản Sao Làm Việc để theo dõi thông điệp tường trình. Nhớ rằng chúng ta đang nghĩ đến các bản sửa đổi như các tập hợp thay đổi, bạn Nên sử dụng bản sửa đổi sau khi các điểm cuối của việc hợp nhất cuối cùng như là điểm bắt đầu cho việc hợp nhất này. Ví dụ, nếu bạn đã hợp nhất các phiên bản 37-39 lần cuối cùng, thì các điểm bắt đầu cho hợp nhất này nên là sửa đổi 40.

Nếu bạn đang sử dụng tính năng theo dõi hợp nhất của Subversion, bạn không cần phải nhớ các bản sửa đổi đã được sáp nhập - Subversion sẽ ghi lại điều đó cho bạn. Nếu bạn bỏ trống phạm vi sửa đổi, tất cả các phiên bản chưa được sáp nhập sẽ được bao gồm. Đọc phần “Theo dõi hợp nh” để tìm hiểu thêm.

Khi theo dõi hợp nhất được sử dụng, hộp thoại tường trình sẽ hiển thị các bản sửa đổi hợp nhất trước đây, và các bản sửa đổi có ngày tháng trước điểm tổ tiên chung, tức là trước khi chi nhánh đã được sao chép, như đã được làm xám. Hộp kiểm Ẩn sửa đổi không hợp nhất được cho phép bạn lọc ra những bản sửa đổi hoàn toàn để bạn chỉ nhìn thấy các bản sửa đổi có thể được hợp nhất.

Nếu người khác có lẽ đang cam kết các thay đổi thì hãy cẩn thận về việc sử dụng bản sửa đổi CHÍNH. Nó có thể không đề cập đến bản sửa đổi bạn nghĩ nếu một người nào khác đã thực hiện một cam kết sau lần cập nhật cuối cùng của bạn.

If you leave the range of revisions empty or have the radio button all revisions checked, then Subversion merges all not-yet merged revisions. This is known as a reintegrate or automatic merge.

Có một số điều kiện áp dụng đối với một hợp nhất tái tích hợp. Thứ nhất, các máy chủ phải hỗ trợ theo dõi kết hợp. Bản sao làm việc phải có chiều sâu vô hạn (không có kiểm xuất thưa thớt), và nó không được có bất kỳ thay đổi địa phương, hạng mục bị chuyển hay hạng mục đã được cập nhật vào các bản sửa đổi khác không phải bản CHÍNH. Mọi thay đổi vào thân cây được thực hiện trong quá trình phát triển chi nhánh phải được sáp nhập qua chi nhánh (hoặc đánh dấu là đã được sáp nhập). Phạm vi các bản sửa đổi để hợp nhất sẽ được tính toán tự động.

Nhấp vào Tiếp theo và đi đến phần “Tùy Chọn Hợp Nhất” .

Việc Sáp Nhập Hai Cây Khác Nhau

Hình 4.52. Trình hướng dẫn sáp nh - Sáp nhập cây

Trình hướng dẫn sáp nh - Sáp nhập cây


Nếu bạn đang sử dụng phương pháp này để hợp nhất một chi nhánh tính năng quay trở lại với thân cây, bạn cần phải chạy trình hướng dẫn hợp nhất từ ​​bên trong một bản sao hoạt động của thân cây.

Trong trường Từ: nhập vào URL thư mục đầy đủ của thân cây . Điều này nghe có vẻ sai, nhưng hãy nhớ rằng thân cây là điểm bắt đầu mà bạn muốn thêm vào những thay đổi chi nhánh. Bạn cũng có thể nhấp chuột vào ... để duyệt qua kho lưu trữ.

Trong trường Đến: nhập vào URL thư mục đầy đủ của chi nhánh tính năng.

Trong cả hai trường Từ Bản Sửa Đổi Đến Bản Sửa Đổi , nhập số phiên bản cuối cùng mà hai cây đã được đồng bộ. Nếu bạn chắc chắn không ai khác đã thực hiện cam kết, bạn có thể sử dụng bản sửa đổi CHÍNH trong cả hai trường hợp. Nếu có một khả năng mà một người nào đó có thể thực hiện một cam kết kể từ khi đồng bộ hóa, sử dụng số phiên bản cụ thể để tránh mất các cam kết gần đây.

Bạn cũng có thể sử dụng Hiện Tường Tr để lựa chọn sửa đổi.

Tùy Chọn Hợp Nhất

Trang này của trình hướng dẫn cho phép bạn chỉ định các tùy chọn nâng cao, trước khi bắt đầu quá trình hợp nhất. Hầu hết thời gian bạn có thể chỉ sử dụng các thiết lập mặc định.

Bạn có thể chỉ định chiều sâu để sử dụng cho hợp nhất, tức là hợp nhất nên đi sâu như thế nào xuống bản sao làm việc của bạn. Các điều khoản độ sâu sử dụng được mô tả trong phần “Độ sâu Kiểm xu” . Độ sâu mặc định là Bản sao làm việc , trong đó sử dụng các thiết lập độ sâu hiện tại, và hầu như luôn luôn là những gì bạn muốn.

Most of the time you want merge to take account of the file's history, so that changes relative to a common ancestor are merged. Sometimes you may need to merge files which are perhaps related, but not in your repository. For example you may have imported versions 1 and 2 of a third party library into two separate directories. Although they are logically related, Subversion has no knowledge of this because it only sees the tarballs you imported. If you attempt to merge the difference between these two trees you would see a complete removal followed by a complete add. To make Subversion use only path-based differences rather than history-based differences, check the Ignore ancestry box. Read more about this topic in the Subversion book, Noticing or Ignoring Ancestry.

Bạn có thể chỉ định cách mà dòng kết thúc và thay đổi khoảng trắng được xử lý. Các tùy chọn này được mô tả trong phần “Tùy chọn cho Hêt-Dòng và Khoảng Trắng” . Các hành vi mặc định là để điều trị tất cả các sự khác biệt khoảng trắng và cuối dòng như thay đổi thực sự cần được sáp nhập.

Hộp kiểm được đánh dấu Buộc thực hiện hợp nhất được sử dụng để tránh một cuộc xung đột cây khi một việc xóa ảnh hưởng đến một tập tin được sửa đổi tại địa phương hay hòan toàn không được đánh phiên bản. Nếu tập tin này bị xóa thì không có cách nào để khôi phục lại nó, đó là lý do tại sao tùy chọn này không được chọn theo mặc định.

Nếu bạn đang sử dụng theo dõi kết hợp và bạn muốn đánh dấu một phiên bản đã được sáp nhập, mà không thực sự làm việc hợp nhất ở đây, kiểm tra hộp kiểm Chỉ ghi lại các hợp nhất . Có hai lý do có thể bạn có thể muốn làm điều này. Nó có thể là hợp nhất như vậy là quá phức tạp đối với các thuật toán hợp nhất, vì vậy bạn viết mã thay đổi bằng tay, sau đó đánh dấu sự thay đổi như sáp nhập để các thuật toán theo dõi hợp nhất nhận thức được nó. Hoặc bạn có thể muốn ngăn chặn một phiên bản nào đó khỏi bị sáp nhập. Đánh dấu nó như đã được sáp nhập sẽ ngăn chặn việc hợp nhất xảy ra với các chương trình khách biết theo dõi kết hợp.

Bây giờ tất cả mọi thứ được thiết lập, tất cả những gì bạn phải làm là nhấp vào nút Hợp nhất . Nếu bạn muốn xem trước kết quả Kiểm Tra Hợp Nhất mô phỏng các hoạt động hợp nhất, nhưng hoàn toàn không sửa đổi các bản sao làm việc. Nó cho bạn thấy một danh sách các tập tin mà sẽ được thay đổi bằng một hợp nhất thực sự, và ghi chú các tập tin mà mâu thuẫn có thể xảy ra. Do việc theo dõi kết hợp làm cho quá trình hợp nhất phức tạp hơn rất nhiều, không có cách nào bảo đảm có thể tìm hiểu trước xem việc hợp nhất sẽ hoàn thành mà không có xung đột, do đó, các tập tin đánh dấu là mâu thuẫn trong một kiểm tra hợp nhất về thực tế có thể hợp nhất mà không có bất kỳ vấn đề.

The merge progress dialog shows each stage of the merge, with the revision ranges involved. This may indicate one more revision than you were expecting. For example if you asked to merge revision 123 the progress dialog will report Merging revisions 122 through 123 . To understand this you need to remember that Merge is closely related to Diff. The merge process works by generating a list of differences between two points in the repository, and applying those differences to your working copy. The progress dialog is simply showing the start and end points for the diff.

Rà soát các Kết quả Hợp nhất

Hợp nhất bây giờ là hoàn tất. Đó là một ý tưởng tốt để có một cái nhìn vào việc hợp nhất và xem nếu nó có như mong đợi không. Hợp nhất thường là khá phức tạp. Xung đột thường xảy ra nếu chi nhánh đã trôi dạt xa thân cây.

Mẹo

Khi các bản sửa đổi được hợp nhất vào bản làm việc, TortoiseSVN tạo ra một thông điệp tường trình từ các bản chỉnh sửa được hợp nhất. Những bản đó được cung cấp từ nút bấm Các Thông Điệp Gần Đây trong hộp thoại cam kết.

Để tùy chỉnh thông điệp được sinh ra, đặt các thuộc tính dự án trên bản làm việc của bạn. Xem phần “Các mẫu thông điệp hợp nhất”

Đối với các máy khách và máy chủ Subversion trước 1.5, không có thông tin sáp nhập nào được lưu trữ và sửa đổi được sáp nhập phải được theo dõi bằng tay. Khi bạn đã thử nghiệm những thay đổi và đi đến cam kết sửa đổi này, thông điệp tường trình cam kết của bạn nên luôn luôn bao gồm các số sửa đổi đã được chuyển trong hợp nhất. Nếu bạn muốn áp dụng một hợp nhất tại một thời gian sau đó bạn sẽ cần phải biết những gì bạn đã sáp nhập, bởi bạn không muốn chuyển đổi một thay đổi nhiều hơn một lần. Để biết thêm thông tin về điều này, hãy tham khảo Thực tiễn Tốt nhất cho sáp nhập trong cuốn sách Subversion.

Nếu máy chủ của bạn và tất cả các máy khách đang chạy Subversion 1.5 hoặc cao hơn, hỗ trợ theo dõi kết hợp sẽ ghi lại các bản sửa đổi được sáp nhập và tránh việc một bản sửa đổi sáp nhập nhiều hơn một lần. Điều này làm cho cuộc sống của bạn đơn giản hơn nhiều khi bạn chỉ đơn giản là có thể hợp nhất toàn bộ phạm vi sửa đổi mỗi lần và biết rằng chỉ phiên bản mới sẽ thực sự được sáp nhập.

Quản lý chi nhánh là quan trọng. Nếu bạn muốn giữ cho chi nhánh này được cập nhật với thân cây, bạn nên chắc chắn là kết hợp thường xuyên để chi nhánh và thân cây không trôi quá xa nhau. Tất nhiên, bạn vẫn nên tránh lặp đi lặp lại kết hợp những thay đổi, như được giải thích ở trên.

Mẹo

Nếu bạn đã sáp nhập một chi nhánh tính năng trở lại vào thân cây, thân cây giờ đây có chứa tất cả các mã tính năng mới, và chi nhánh trở nên lỗi thời. Bạn có thể xóa nó từ kho nếu cần thiết.

Quan trọng

Subversion không thể hợp nhất một tập tin với một thư mục và ngược lại - chỉ thư mục vào các thư mục và tập tin vào các tập tin. Nếu bạn nhấp chuột vào một tập tin và mở hộp thoại hợp nhất, thì bạn phải cung cấp một đường dẫn đến một tập tin trong hộp thoại đó. Nếu bạn chọn một thư mục và đưa lên hộp thoại, sau đó bạn phải chỉ định một URL thư mục để hợp nhất.

Theo dõi hợp nh

Subversion 1.5 giới thiệu các hỗ trợ cho theo dõi hợp nhất. Khi bạn hợp nhất các thay đổi từ một cây khác, những con số sửa đổi sáp nhập được lưu trữ và thông tin này có thể được sử dụng cho nhiều mục đích khác nhau.

  • Bạn có thể tránh nguy hiểm của việc hợp nhất cùng một sửa đổi hai lần (lặp đi lặp lại vấn đề kết hợp). Một khi sửa đổi được đánh dấu như đã được hợp nhất, các sáp nhập trong tương lai trong đó bao gồm sửa đổi trong phạm vi sẽ bỏ qua nó.

  • Khi bạn hợp nhất một chi nhánh trở lại vào thân cây, hộp thoại tường trình có thể cho bạn thấy việc cam kết chi nhánh như một phần của tường trình thân cây, cho phép theo dõi tốt hơn những thay đổi.

  • Khi bạn hiển thị hộp thoại tường trình từ bên trong hộp thoại hợp nhất, các sửa đổi đã được sáp nhập được thể hiện trong màu xám.

  • Khi hiển thị thông tin đổ lỗi cho một tập tin, bạn có thể chọn hiển thị các tác giả ban đầu của các phiên bản sáp nhập, chứ không phải là người đã thực hiện hợp nhất.

  • Bạn có thể đánh dấu các phiên bản như đừng hợp nhất bằng cách bao gồm chúng trong danh sách các phiên bản sáp nhập mà không thực sự làm việc hợp nhất.

Thông tin theo dõi hợp nhất được lưu trữ trong thuộc tính svn:mergeinfo của máy khách khi thực hiện một hợp nhất. Khi hợp nhất được cam kết máy chủ lưu thông tin đó trong một cơ sở dữ liệu, và khi bạn yêu cầu thông tin hợp nhất, tường trình hoặc đổ lỗi, máy chủ có thể trả lời một cách thích hợp. Để cho hệ thống làm việc đúng cách, bạn phải đảm bảo rằng các máy chủ, kho lưu trữ và tất cả các máy khách được nâng cấp. Các máy khách cũ hơn sẽ không lưu trữ thuộc tính svn:mergeinfo và máy chủ cũ hơn sẽ không cung cấp các thông tin theo yêu cầu của máy khách mới.

Tìm hiểu thêm về theo dõi hợp nhất từ Subversion Tài liệu về theo dõi việc hợp nhất.

Handling Conflicts after Merge

Quan trọng

The text in the conflict resolver dialogs are provided by the SVN library and might therefore not (yet) be translated as the TortoiseSVN dialogs are. Sorry for that.

Merging does not always go smoothly. Sometimes there is a conflict. TortoiseSVN helps you through this process by showing the merge conflict dialog.

Hình 4.53. The Merge Conflict Dialog

The Merge Conflict Dialog


It is likely that some of the changes will have merged smoothly, while other local changes conflict with changes already committed to the repository. All changes which can be merged are merged. The Merge Conflict dialog gives you different ways of handling the lines which are in conflict.

For normal conflicts that happen due to changes in the file content or its properties, the dialog shows buttons which allow you to chose which of the conflicting parts to keep or reject.

Postpone

Don't deal with the conflict now. Let the merge continue and resolve the conflicts after the merge is done.

Accept base

This leaves the file as it was, without neither the changes coming from the merge nor the changes you've made in your working copy.

Accept incoming

This discards all your local changes and uses the file as it arrives from the merge source.

Reject incoming

This discards all the changes from the merge source and leaves the file with your local edits.

Accept incoming for conflicts

This discards your local changes where they conflict with the changes from the merge source. But it leaves all your local changes which don't conflict.

Reject conflicts

This discards changes from the merge source which conflict with your local changes. But it keeps all changes that don't conflict with your local changes.

Mark as resolved

Marks the conflicts as resolved. This button is disabled until you use the button Edit to edit the conflict manually and save those changes back to the file. Once the changes are saved, the button becomes enabled.

Biên tập

Starts the merge editor so you can resolve the conflicts manually. Don't forget to save the file so the button Mark as resolved becomes enabled.

If there's a tree conflict, please first see phần “Mâu Thuẫn Cây” about the various types of tree conflicts and how and why they can happen.

To resolve tree conflicts after a merge, a dialog is shown with various options on how to resolve the conflict:

Hình 4.54. The Merge Tree Conflict Dialog

The Merge Tree Conflict Dialog


Since there are various possible tree conflict situations, the dialog will show buttons to resolve those depending on the specific conflict. The button texts and labels explain what the option to resolve the conflict does. If you're not sure, either cancel the dialog or use the Postpone button to resolve the conflict later.

Bảo trì các Chi nhánh Tính năng

Khi bạn phát triển một tính năng mới trên một nhánh riêng biệt, nó là một ý tưởng tốt để làm ra một chính sách tái tích hợp khi tính năng được hoàn tất. Nếu công việc khác đang xảy đồng thời ra trong thân cây bạn có thể thấy sự khác biệt đáng kể theo thời gian, và hợp nhất trở lại biến thành một cơn ác mộng.

Nếu tính năng là tương đối đơn giản và phát triển sẽ không mất nhiều thời gian thì bạn có thể áp dụng một phương pháp đơn giản, để giữ cho chi nhánh hoàn toàn riêng biệt cho đến khi tính năng này hoàn tất, sau đó hợp nhất các thay đổi chi nhánh trở lại vào thân cây. Trong trình hướng dẫn hợp nhất việc này sẽ đơn giản là Hợp nhất một loạt các sửa đổi , với phạm vi sửa đổi là khoảng sửa đổi của chi nhánh.

Nếu tính năng này sẽ mất nhiều thời gian và bạn cần vào tài khoản cho những thay đổi trong thân cây , thì bạn cần phải giữ cho chi nhánh đồng bộ. Điều này đơn giản chỉ có nghĩa là định kỳ, bạn hợp nhất các thay đổi thân cây vào chi nhánh, do đó chi nhánh có chứa tất cả các thay đổi thân cộng thêm tính năng mới. Quá trình đồng bộ sử dụng Hợp nhất một loạt các sửa đổi . Khi tính năng hoàn tất, sau đó bạn có thể kết hợp nó trở lại thân cây bằng cách sử dụng Tái tích hợp một chi nhánh hoặc Hợp nhất hai cây khác nhau .

Another (fast) way to merge all changes from trunk to the feature branch is to use the TortoiseSVNMerge all... from the extended context menu (hold down the Shift key while you right click on the file).

Hình 4.55. The Merge-All Dialog

The Merge-All Dialog


This dialog is very easy. All you have to do is set the options for the merge, as described in phần “Tùy Chọn Hợp Nhất”. The rest is done by TortoiseSVN automatically using merge tracking.