Có thể hợp nhất một loạt các sửa đổi từ một chi nhánh này sang chi nhánh khác trong Mercurial không?sáp nhập các sửa đổi đã chọn từ một chi nhánh này sang chi nhánh khác trong Mercurial
ví dụ:
|r1
|r2
|r3
|\___
| | r5
| | r6
| | r7
| | ...
| | r40
|r41
Nếu tôi muốn hợp nhất sửa đổi 6 & 7, nhưng không phải 5, vào nhánh chính - điều này có thể?
một hợp nhất như vậy có thể là tầm thường, ví dụ, nếu r5 chỉnh sửa file mà không được sửa đổi trong 6 & 7 (và do đó thay đổi nó, nếu không cần thiết, có thể một cách an toàn bị bỏ qua)
gì về nhiều phiên bản được chọn nằm trong khoảng từ chi nhánh A đến chi nhánh B? ví dụ. hợp nhất 4-7, 20-25 và 30-34?
(đây không phải là một trường hợp thực tế, chỉ cần một minh hoạ. Tôi đang cố gắng để hiểu nếu hg có merge này tính năng điều chỉnh tầm xa mà tôi biết svn có)
Không đúng là r6 phải phụ thuộc vào r5 theo bất kỳ cách nào có ý nghĩa. Ví dụ: có thể r5 chỉ thay đổi một số tệp mà các bản sửa đổi khác không chạm vào, do đó, hoàn toàn không có vấn đề bỏ qua bản sửa đổi cụ thể đó (từ quan điểm trung tâm dữ liệu). Xin đừng cho rằng tôi đang sử dụng hg theo cách này, tôi chỉ cố gắng hiểu khả năng của nó. –
Ngoài ra, tôi đã không hoàn toàn có được những gì bạn có nghĩa là bằng cách nhìn cây _should_. Hình minh họa cây của bạn hiển thị nhiều nhánh với vài sửa đổi. Đó có phải là tinh thần của hg - chỉ có những nhánh ngắn? Bởi vì đôi khi bạn chỉ cần một nhánh riêng biệt để thực hiện rất nhiều công việc mà không đi vào thân cây. Nếu bạn duy trì nhiều phiên bản lịch sử, nó không khả thi để có một kho lưu trữ trên mỗi phiên bản, do đó, các nhánh là giải pháp hợp lý duy nhất. Vì vậy, làm thế nào để bạn đề nghị để giữ cho các chi nhánh ngắn, và tại sao nó sẽ tốt hơn so với việc có nhiều chi nhánh khác nhau khi cần thiết? –
r6 phụ thuộc vào r5 bởi vì bạn nói nó đã làm khi bạn thực hiện r5 r6 của cha mẹ. Nếu bạn muốn tránh điều đó, và chúng thực sự không liên quan, bạn có thể 'hg update' cho một phụ huynh khác trước khi thực hiện thay đổi 6. Nếu trước khi thực hiện r6 bạn đã thực hiện 'hg update r4' thì cha mẹ của r6 sẽ là R4, và bạn có thể di chuyển nó đến bất kỳ nhánh phát triển nào đã có r4. Theo nghĩa rộng nhất khi thực hiện thay đổi, hãy tự hỏi "điểm sớm nhất trong lịch sử tôi có thể thực hiện việc này" và sau đó là 'cập nhật hg' cho điểm đó. Sau đó, bạn có một changeset có thể dễ dàng sáp nhập bất cứ nơi nào nó có ý nghĩa. –