Giải quyết xung đột: làm thế nào để tự động chấp nhận các thay đổi của “họ”?


97

Khi hợp nhất các thay đổi xung đột bằng cách sử dụng hg merge, Mercurial sẽ chèn một tập hợp các điểm đánh dấu vào các tệp sẽ được hợp nhất trong bản sao làm việc của tôi như sau:

<<<<<<< local
  version = 0.2
=======
  version = 0.1
>>>>>>> other

Sau đó, tôi chỉnh sửa thủ công tất cả các tệp được đánh dấu là U từ một danh sách được tạo ra hg resolve --all -lvà sau đó tôi nói với chú rể rằng tôi đã giải quyết chúng bằng cáchhg resolve -m file1 file2 file3 ...

Tuy nhiên, trong nhiều trường hợp, tôi muốn chấp nhận các thay đổi của riêng tôi hoặc của riêng họ trên một số tệp xung đột. Tôi đang suy nghĩ để tạo hai tập lệnh đơn giản sed / awk / bất kỳ tập lệnh nào được đặt tên accept-theirs.shaccept-my.shhoặc có cách nào "thích hợp" để làm điều đó không?

Câu trả lời:


166

Sử dụng

hg resolve -t internal:other --all

chấp nhận theirs

hg resolve -t internal:local --all

chấp nhận yours


Cảm ơn rât nhiều! Tôi không hiểu @djc có nghĩa là gì, nhưng giải pháp của bạn hoạt động như một sự quyến rũ.
psihodelia

@psihodelia djc nói khá giống nhau, hãy thử hg help merge-tools(mergetools là một bí danh trong các phiên bản sau)
MGP

6
Như một lưu ý phụ, tôi đã đặt bí danh này:[alias] mine = resolve -t internal:local theirs = resolve -t internal:other
Melvyn

1
Đó là ba dòng để thêm vào của riêng mình .hgrc, dành cho người mới : [alias], sau đó mine = resolve -t internal:local, sau đó theirs = resolve -t internal:other. Sau đó, bạn có thể sử dụng hg mine some_file.pyhoặc hg theirs -a(cho Tất cả)
Tobia

1
Đối với phab.mercurial-scm.org/D4379 , bạn cũng có thể cần phải bao gồm --re-mergecờ (ví dụ hg resolve -t internal:other --re-merge --all:)
Ethan Koenig

23

Thử cái này:

hg merge --tool 'internal:other'

Xem thêm hg help merge-toolsđể biết thêm thông tin.


1
Hoặc resolveđối với các tệp đơn lẻ / làm lại nó. (Ngoài ra, các dấu ngoặc kép quanh internal:otherlà không cần thiết.)
Chris Morgan
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.