Menyelesaikan konflik: bagaimana menerima perubahan "mereka" secara otomatis?


97

Saat menggabungkan perubahan yang bertentangan menggunakan hg merge, Mercurial menyisipkan satu set penanda ke dalam file untuk digabungkan dalam copy pekerjaan saya seperti ini:

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

Kemudian saya secara manual mengedit semua file yang ditandai sebagai U dari daftar yang dibuat oleh hg resolve --all -ldan kemudian saya memberi tahu lincah bahwa saya telah menyelesaikannyahg resolve -m file1 file2 file3 ...

Namun dalam banyak situasi, saya ingin menerima perubahan hanya-saya atau satu-satunya pada beberapa file yang bentrok. Saya berpikir untuk membuat dua skrip sed / awk / apapun yang diberi nama accept-theirs.shdan accept-my.shatau adakah cara yang "tepat" untuk melakukannya?

Jawaban:


166

Menggunakan

hg resolve -t internal:other --all

untuk menerima theirsdan

hg resolve -t internal:local --all

menerima yours


Terima kasih banyak! Saya tidak mengerti apa artinya @djc, tetapi solusi Anda berfungsi dengan sangat baik.
psihodelia

@psihodelia djc mengatakan hampir sama, coba hg help merge-tools(mergetools adalah alias di versi terakhir)
MGP

6
Sebagai catatan tambahan, saya menggunakan alias ini:[alias] mine = resolve -t internal:local theirs = resolve -t internal:other
Melvyn

1
Itu adalah tiga baris untuk ditambahkan ke milik sendiri .hgrc, untuk pemula:, [alias]lalu mine = resolve -t internal:local, lalu theirs = resolve -t internal:other. Setelah itu Anda dapat menggunakan hg mine some_file.pyatau hg theirs -a(untuk Semua)
Tobia

1
Mulai dari phab.mercurial-scm.org/D4379 , Anda mungkin juga perlu menyertakan --re-mergebendera (misalnya hg resolve -t internal:other --re-merge --all)
Ethan Koenig

23

Coba ini:

hg merge --tool 'internal:other'

Lihat juga hg help merge-toolsuntuk informasi lebih lanjut.


1
Atau resolveuntuk satu file / mengulanginya. (Juga, kutipan di sekitar internal:othertidak diperlukan.)
Chris Morgan
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.