Hợp nhất nhánh với thân cây


119

Sử dụng TortoiseSVN, tôi cần thực hiện các thay đổi mà tôi đã thực hiện trong một nhánh và sau đó hợp nhất chúng với thân cây.

Tôi là nhà phát triển duy nhất trong dự án này, vì vậy tôi biết thân cây không thay đổi. Tôi đang học SVN để cuối cùng nhóm của tôi có thể sử dụng nó.

Về cơ bản, tôi muốn thân cây của mình trông giống hệt như cành cây.

Trong thế giới trước svn, tôi chỉ cần sao chép các tệp trong thư mục nhánh của mình, xóa các tệp trong thư mục thân và sau đó sao chép nhánh vào thân.

Trong TortoiseSVN, tôi đã cố gắng Reintegrate a branch, Merge a range of revisionsMerge two different trees. Có vẻ như không có gì thực sự thay đổi thân cây. Tôi cũng đã thử phân nhánh trên thân cây. Điều này mang lại cho tôi một lỗi, nói rằng thân cây đã tồn tại.

Câu trả lời:


157

Trong trường hợp của bạn:

  1. Chuyển bản sao làm việc sang trung kế (SVN Switch)
  2. Hợp nhất chi nhánh vào bản sao làm việc (SVN Merge)
  3. Đảm bảo mọi thứ vẫn biên dịch và hoạt động
  4. Cam kết bản sao làm việc (thân cây)
  5. Cân nhắc việc giết nhánh

Trong môi trường nhóm, tôi khuyên bạn trước tiên nên hợp nhất các sửa đổi mới nhất từ ​​thân cây trong nhánh của bạn, đảm bảo rằng mọi thứ đều biên dịch và hoạt động, sau đó thực hiện các bước trên (sẽ rất nhỏ vì bạn đã thử nghiệm các thay đổi).


Cập nhật

Trong bước 5, tôi đề cập đến việc giết nhánh. Đó là bởi vì khi một nhánh của một đặc điểm nằm trong thân cây, thì nó nên được coi là một phần của thân cây. Trong trường hợp đó, chi nhánh nên bị giết để không ai tiếp tục làm việc trên nó. Nếu cần sửa đổi lớn cho tính năng đó, bạn nên tạo một nhánh mới cho tính năng đó.

Các nhánh duy nhất mà tôi không giết là các nhánh bảo trì và giải phóng, trừ khi một bản phát hành cụ thể không còn được hỗ trợ nữa.

Không có vấn đề gì, bạn luôn có quyền truy cập vào mọi bản sửa đổi vì vậy việc giết một nhánh chỉ được sử dụng để ngăn các nhà phát triển khác phát triển trên một nhánh đã chết.


Nhận xét bạn đã thêm ở bước 5 có lẽ tốt hơn nên là bước 1? Khi bạn muốn sử dụng "Tái tích hợp một nhánh" từ hộp thoại TortoiseSVN Merge, việc hợp nhất tất cả các thay đổi từ thân (hoặc nhánh cơ sở) trước tiên là một yêu cầu.
jbvo

1
Bước đầu tiên (chuyển bản sao làm việc sang thân) chỉ cần thiết nếu không có bản sao làm việc nhánh và thân riêng biệt?
Jeff B

1
Tôi nghĩ rằng một phần chi tiết chính bị thiếu ở đây là thư mục bạn nhấp vào cho mỗi bước, vì vậy bạn biết bối cảnh của mỗi bước.
MacGyver

10

Tôi nghĩ trong TortoiseSVN 1.8.5, Hợp nhất | Hợp nhất hai cây khác nhau sẽ hoạt động. Khi bạn hợp nhất một nhánh / thẻ trở lại đường trục, mẹo là URL Từ là đường trục và Đến là thẻ / nhánh. Kỳ lạ nhưng có thật.

Nguồn: Sáp nhập

Đối với các thư mục không có trong bản sao làm việc của bạn nhưng nằm trong thẻ / nhánh, bạn có thể gặp lỗi xung đột. Chỉ cần chấp nhận xung đột và thực hiện lại hợp nhất.


Sau khi bạn làm theo hướng dẫn trên trang rùa bò, hãy chắc chắn rằng sau khi hợp nhất, bạn cam kết thân cây mà không sửa đổi bất cứ điều gì. Tôi đã thử bỏ chọn một số thứ mà tôi không muốn cam kết, điều này gây ra một số cảnh báo cam kết không đệ quy. Ngoài ra, hãy xem xét việc xóa nhánh như hướng dẫn nói.
goku_da_master

6

Đầu tiên chuyển bản sao làm việc của bạn sang thân cây. Sau đó, thực hiện một loạt các sửa đổi hợp nhất, từ nhánh đến thân. Sau khi hộp thoại này hoàn tất, sự khác biệt sẽ là những thay đổi đang chờ xử lý trong bản sao thân cây làm việc của bạn. Bạn sẽ cần phải cam kết chúng giống như khi bạn thực hiện các thay đổi trên bản sao làm việc của mình theo cách thủ công.

Trong cách sử dụng của tôi, nó điển hình hơn để giữ cho thân cây hoạt động và quay cành cây vào thời điểm xây dựng. Vì vậy, sau đó hợp nhất duy nhất tôi cần làm là sửa một lỗi từ thân cây và đưa nó vào nhánh bản dựng mới nhất và phát hành lại nhánh đó. Cách dễ nhất để tôi làm điều này, vì như bạn đã thấy việc hợp nhất là vụng về nhất. Là giữ chi nhánh mới nhất và trung kế được kiểm tra vào máy của tôi, và sao chép các tệp tin từ trung kế sang chi nhánh và kiểm tra cả hai theo đúng nghĩa đen.


2
Cần phải cẩn thận nhiều với việc "sao chép" các tệp. Sử dụng một cái gì đó giống như TortoiseSVN xuất khẩu để tránh làm hỏng các thư mục svn ẩn.
Milimetric

3

Tôi đang sử dụng TortoiseSVN 1.9.3, Bản dựng 27038.

Làm theo các bước dưới đây để hợp nhất nhánh vào thân.

1) Nhấp chuột phải vào bản sao làm việc thân cây và chọn tùy chọn bên dưới.

nhập mô tả hình ảnh ở đây

2) Trong trường hợp Sáp nhập chi nhánh vào trung kế, chọn tùy chọn thứ hai như hình dưới đây và nhấp vào tiếp theo

nhập mô tả hình ảnh ở đây

3) Trong trường Từ: nhập 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 các thay đổi nhánh. Trong trường Tới: nhập URL thư mục đầy đủ của nhánh tính năng.

nhập mô tả hình ảnh ở đây

4) Nhấp vào tiếp theo và thực hiện kết hợp thử nghiệm

nhập mô tả hình ảnh ở đây

5) Nếu kiểm tra hợp nhất thành công thì hãy nhấp vào nút Hợp nhất.

6) Sau khi hợp nhất thành công, hãy thực hiện các thay đổi trên thân cây.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.