Anlaşmazlıkları çözmek: "onların" değişikliklerini otomatik olarak nasıl kabul edersiniz?


97

Kullanarak çakışan değişiklikleri birleştirirken hg merge, Mercurial, çalışma kopyamda birleştirilecek dosyalara şu şekilde bir dizi işaretçi ekler:

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

Daha hg resolve --all -lsonra tarafından üretilen bir listeden U olarak işaretlenen tüm dosyaları manuel olarak düzenlerim ve ardından mercurial'a bunları şu şekilde çözdüğümü söylüyorum:hg resolve -m file1 file2 file3 ...

Pek çok durumda, bazı çakışan dosyalarda ya benim ya da sadece kendi değişikliklerini kabul etmek isterim. İki basit sed / awk / adı verilen komut dosyaları oluşturmayı düşünüyorum accept-theirs.shve accept-my.shveya bunu yapmanın "uygun" bir yolu var mı?

Yanıtlar:


167

Kullanım

hg resolve -t internal:other --all

kabul etmek theirsve

hg resolve -t internal:local --all

kabul etmek yours


Çok teşekkür ederim! @Djc'nin ne anlama geldiğini anlamıyorum ama çözümünüz bir cazibe gibi çalışıyor.
psihodelia

@psihodelia djc hemen hemen aynı şeyi söyledi, dene hg help merge-tools(mergetools sonraki sürümlerde takma addır)
MGP

6
Yan not olarak bunun takma [alias] mine = resolve -t internal:local theirs = resolve -t internal:other
adını

1
Bunlar .hgrcyeni başlayanlar için kişinin kendisine ekleyebileceği üç satırdır : [alias]o zaman mine = resolve -t internal:local, o zaman theirs = resolve -t internal:other. Bundan sonra hg mine some_file.pyveya hg theirs -a(Herkes için) kullanabilirsiniz
Tobia

1
Phab.mercurial-scm.org/D4379 itibariyle , --re-mergebayrağı da eklemeniz gerekebilir (örn. hg resolve -t internal:other --re-merge --all)
Ethan Koenig

23

Bunu dene:

hg merge --tool 'internal:other'

Daha hg help merge-toolsfazla bilgi için ayrıca bakın .


1
Veya resolvetek dosyalar / yeniden yapmak için. (Ayrıca, etrafındaki alıntılar internal:othergereksizdir.)
Chris Morgan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.