Làm thế nào để hủy bỏ một hợp nhất trong thương mại?


85

Tôi giả vờ hợp nhất. Tôi muốn hoàn nguyên rồi thử lại.
Có cách nào để hoàn nguyên hợp nhất trước khi nó được cam kết không?

hg revertkhông làm những gì tôi muốn, nó chỉ hoàn nguyên văn bản của các tệp. Mercurial hủy bỏ nỗ lực hợp nhất thứ hai của tôi và khiếu nại việc hợp nhất ban đầu vẫn chưa được cam kết.

Có cách nào để hoàn tác hợp nhất sau một hg mergelệnh nhưng trước khi nó được cam kết không?


Có thể có bản sao của Cách bỏ hợp nhất hg?
Rodrigue

Câu trả lời:


106

hg update -C <one of the two merge changesets>


Đơn giản, hiệu quả và theo tôi là cách tốt nhất để làm điều đó! : D
Eric-Karl

@JonL. - Có, --cleanlà một từ đồng nghĩa với -C. Tôi không chắc tập hợp nào .sẽ tham chiếu đến, nhưng nó sẽ luôn là một trong hai tập hợp thay đổi được hợp nhất.
Omnifarious

3
@Omnifarious, quá trình dọn dẹp .phải sạch sẽ đối với bất kỳ bản sửa đổi nào bạn đã thực hiện trước khi bắt đầu hợp nhất. Vì vậy, nếu bạn đang ở r42, cố gắng hợp nhất với r43, không thành công, đã được làm sạch, bạn sẽ quay lại với r42 nguyên sơ.
Jon L.

2
hg update --cleanhoạt động, .dường như là mặc định ngầm - mặc dù vậy nó không được ghi lại rõ ràng .
Joel Purra

@JoelPurra: Ý nghĩa của .trong ngữ cảnh hợp nhất khá mơ hồ.
Omnifarious

39

Sau khi bạn làm hg merge, nhưng trước đó hg commit, bản sao làm việc của bạn có hai cha mẹ: cha mẹ đầu tiên là tập thay đổi bạn đã cập nhật trước khi hợp nhất và cha mẹ thứ hai là tập thay đổi mà bạn đang hợp nhất. Mercurial sẽ không cho phép bạn làm hg mergelại miễn là bản sao làm việc của bạn có hai bố mẹ.

Bạn có hai tùy chọn về cách tiếp tục:

  1. Nếu bạn muốn hủy hợp nhất và quay lại nơi bạn đã bắt đầu, hãy làm

    hg update -C .
    

    Thao tác này sẽ cập nhật bản sao đang làm việc để khớp với bản gốc đầu tiên: bản .luôn biểu thị bản gốc đầu tiên của bản sao đang làm việc.

  2. Nếu bạn muốn hợp nhất lại một số tệp thì hãy làm

    hg resolve fileA fileB
    

    Thao tác này sẽ khởi chạy lại các công cụ hợp nhất giống như khi bạn đã làm hg merge. Lệnh giải quyết là tốt nếu bạn phát hiện ra hg mergerằng các công cụ hợp nhất của bạn được cấu hình sai vào lúc nào: hãy sửa cấu hình và chạy hg resolve --all. Bạn có thể chạy hg resolvebao nhiêu lần tùy thích cho đến khi bạn hài lòng với việc hợp nhất.

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.