Mercurial greft kullanmanın sonuçları
Son zamanlarda birkaç soru Mercurial sürüm dalları bakımı değişiklikleri atlama hakkında oldu. Örneğin:
- Mercurial: Branch specific changes keep coming back after dummy merge
- Why are Mercurial backouts in one branch affecting other branches?
graft
Bu sorunu önlemek için kullanma hakkında merak etmişimdir 2.0, piyasaya çıktığından beri. Revizyon bir ağaca verilen bu gibi:
A---B---C---D---E---F---G---H---I---J
Kötülük değişikliği E
atlar serbest bir şube oluşturmak zorunda kalabiliriz.
hg update -r D
hg graft "F::J"
bize vererek:
A---B---C---D---E---F---G---H---I---J
\
--F'--G'--H'--I'--J'
- Sadece burada Ne oldu? S1: Anlayabiliyorum
transplant
olurdu oluşturulan yamalar dışarıF::J
ve sonra uygulanan onları üzerineD
amagraft
dedi kullanmak için 3-yollu birleştirme yerine yamalar. ......Yani. nasıl çalışır? Neden daha iyidir?
Diyorum ki şimdi E
, düzeltme ve benim albüm şube içine birleştirme sağlar.
--E2-----------------
/ \
A---B---C---D---E---F---G---H---I---J---M1
\ \
--F'--G'--H'--I'--J'---------M2--
M1 bir düz birleştirme; orada hiçbir şey özel. M2 olan şubeleri birleştirme "aynı" (veya en azından eşdeğer) değişiklikleri.
- S2: bu 3-yollu birleştirme sadece normal
D
,J'
M1
kullanarak birleştirme? - S3: mercurial saklı/greft operasyonu hakkında ek bilgi yardımcı olmak için kullanılan birleştirme ile değil mi?
Ve son olarak...
- Böyle bir akım ile potansiyel sorunların Neler? S4:
CEVAP
24 ** güncelleme ne zaman ve greft F::J
, Mercurial samimi bir dizi çalışır. Bu birleştirme ile başlar:
M = three_way_merge(local=D, other=F, base=E)
Eğer Birleşik Devletleri C
D
, arasında delta d
yazma ile başlayalım:
d e f
---- C ---- D ---- E ---- F ----
Devre grafik 90 derece saat yönünde ve yukarıdaki üç yollu birleştirme bu gibi görünüyor:
-e
.---- D
/
E
\
'---- F
f
Yani, biz E
ile başlayan ve -e
ters D
ulaşmak için de geçerli olduğunu farz et. e
ters yama olarak düşünüyorum. E
başlangıç biz de devlet için gitti normal delta f
37*. Garip bir şey var — bütün devletler (D
, E
F
) depo içinde zaten var. Yani böyle bakınca, D
F
birleşmeden çok açık.
Birleştirme meselesi "elmas tamamlanıyor". Çok yeni bir devlet M
bir karışımı D
F
ve nerede fark D
M
benzer f
fark F
51* benzer -e
. Bu gibi görünüyor:
-e f'
.---- D ----.
/ \
E M
\ /
'---- F ----'
f -e'
f
delta f'
oldu -e
delta -e'
oldu. Bu üç yollu birleştirme sadece normal değil, ama etkisi ilginç: D
yerine E
! üzerine F
başvurduk
Birleşmeden sonra, F
61 *ikinci ebeveyn düştü
-e f'
.---- D ----.
/ \
E M
\
'---- F
f
Söylüyorum: Biz kopyalanan "etkisi" F
üzerine D
, yani, elimizde bulunan bir delta ( f'
) uygulanan D
ver aynı etkiye f
uygulanan E
. Grafik biraz düzelteceğiz
f'
--- D ---- M
\
'---- E ---- F
e f
Sonuç F
D
üç yönlü bir makine kullanarak tam üzerine aşılı.
S1:Sadece burada ne oldu? ......Yani. nasıl çalışır? Neden daha iyidir?
A1:Samimi makine birleştirme beri yamalar daha iyidir kullanarak dikkate adlandırır gibi şeyler alır.
S2:Bu sadece normal bir 3-yollu D, J kullanarak birleştirme' ve M1? birleştirme.
A2:Evet, aşılama grafik topoloji değiştirmez.
S3:Mercurial saklı/greft operasyonu hakkında ek bilgi yardımcı olmak için kullanılan birleştirme ile değil mi?
A3:Hayır.
S4:Böyle bir akım ile potansiyel sorunlar nelerdir?
A4:Bir bakış açısı birleştirme Tamam çalışması gerekir. İnsanlar için kafa karıştırıcı olabilir ve bazı tarih yinelenen.
Visual Studio "Bul" " so...
:Dışındakiler mercurial, svn kullanara...
Mercurial kalmış "kilit" bekl...
Mercurial depo geçmişi silinen dosyala...
'kullanmanın anlamı ne Amazon Sim...