Soru Tamamen manuel Mercurial birleştirme


Mercurial'da birleştirme işlemi üzerinde tam manuel kontrol almanın bir yolu var mı?

Çakışma olmayan dosyalar için bile dosya birleştirme yönünü seçebilmek istiyorum. Mümkün mü?


18
2018-03-26 10:08


Menşei




Cevaplar:


Birleştirme yapılandırmanızda "ön birleştirme" özelliğini kapatın. Sonra her şey bir çatışma olarak sayılır ve her dosya değişikliği için "sol" veya "sağ" seçebilirsiniz.

[merge-tools]
mymergetool.premerge = False

itibaren Mercurial wiki'de MergeToolConfiguration.


20
2018-04-02 05:02



Şimdi deneyebilirsiniz hg merge --tool internal:prompt - Ry4an Brase
Muhtemelen birilerine yardım eder, çünkü aşağıdan hiçbiri üstündeki snippet bana yardım etmedi. ekledim [ui] -> merge = internal:merge ve başarısız birleştirme sonrasında araçları çözme işlemini tamamen devre dışı bıraktı. Aslında bu Mercurial versiyonumu güncelledikten sonra can sıkıcı araç görünmeye başladı. - ivkremer


Yapılandırma dosyanızı şu şekilde düzenleyin:

[ui]
merge = kdiff3

[merge-tools]
kdiff3.premerge = false
kdiff3.args=--L1 base --L2 local --L3 other $base $local $other -o $output

Varsayılan olarak koyar --auto kdiff3 argüman böylece kdiff3 otomatik birleştirir.


12
2018-06-25 20:37



+1 çünkü bununla yarım saat boyunca mücadele ediyorum ve siz de --auto argüman. Beni bulmak için sonsuza kadar sürecek (el ile birleştirme ihtiyacım vardı). - Denilson Sá Maia


Birleştirme her zaman çalışma yöneticisinin ebeveyn revizyonu ile başka bir revizyon arasında, varsayılan olarak deponuzdaki diğer kafa arasında gerçekleştirilir.

Eğer diğer "yönde" birleştirmek isterseniz, belirli bir revizyonu kontrol ederek hangi dizinin çalışma dizininizde olduğunu değiştirebilirsiniz:

hg update -r [rev]

Havuzunuzda hangi kafaların bulunduğunu görmek için aşağıdaki komutu çalıştırın:

hg heads

Alternatif olarak, kullanıyorsanız fetch kullanabilirsiniz --switch-parent diğer yönde birleştirmek için seçenek:

hg fetch --switch-parent

Mercurial'in, CVS gibi dosyaları tek tek değiştirerek değil, tüm depoyu etkileyen değişikliklerle çalıştığı için, birleştirme yönünü dosya bazında değiştiremezsiniz.


2
2018-03-26 10:17



Cevabını kabul ettiğini görüyorum, ama aslında onun ne sorduğunu sanmıyorum. Bütün anlaşmazlıklar için "sol" ya da "doğru" nasıl seçileceğini söylediniz, ama eğer karıştırmak ve eşleşmek istiyorsa, birleştirme aracını çalıştırmadan önce iç "ön birleştirme" yi kapatması gerekiyor. - Ry4an Brase


KDiff3 durumunda seçenek eklemek çok önemlidir --qall (görmek http://kdiff3.sourceforge.net/doc/documentation.html). Bu anahtar olmadan bazı çakışmaların otomatik bir birleşmesi olacaktır.Basit Çakışmaları Otomatik Olarak Çöz"from"birleşmek"menu". Böylece daha uygun komut satırı:

[ui]
merge = kdiff3

[merge-tools]
kdiff3.premerge = False
kdiff3.args=$base $local $other -o $output --L1 base --L2 local --L3 other --qall

1
2018-02-05 15:01