Geleneksel bir VCS'de neden çözülemeyen dosyaları işlemeyeceğinizi anlayabiliyorum çünkü derlemeyi bozabilirsiniz. Ancak, neden bir DVCS'de çözülmemiş dosyaları yürütmemeniz gerektiğini anlamıyorum (bazıları aslında dosyaları işlemenizi engelleyecektir ).
Bunun yerine, deponuzun itme ve çekme işleminden kilitli olması gerektiğini , ancak taahhütte bulunmaması gerektiğini düşünüyorum .
Birleştirme işlemi sırasında işlem yapabilmenin birkaç avantajı vardır (gördüğüm gibi):
- Gerçek birleştirme değişiklikleri geçmişte.
- Birleştirme çok büyük olsaydı, periyodik taahhütler verebilirsiniz.
- Bir hata yaptıysanız, geri almak çok daha kolay olurdu (tüm birleştirmeyi yeniden yapmak zorunda kalmadan).
- Dosyalar çözümlendi olarak işaretleninceye kadar çözümlenmemiş olarak işaretlenmiş olarak kalabilir. Bu itmeyi / çekmeyi engelleyecektir.
Ayrıca, tek bir küme yerine birleştirme işlevi gören bir dizi değişiklik kümeniz de olabilir . Bu, gibi araçları kullanmaya devam etmenizi sağlar git rerere
.
Peki neden çözülemeyen dosyalarla uğraşmak kaşlarını çattı / engellendi? Gelenek dışında bir sebep var mı?
hg 1.6
birleştirme işleminden sonra dosyalar çözülmemiş olarak işaretlenir. hg
olacak değil çözüldü olarak bunları işaretlediğiniz kadar taahhüt izin (ille aslında bunları çözmek zorunda anlamına gelmez, ama bir fikir olduğunu varsaymak olacaktır).
hg
aslında "çözüldü" olarak işaretlenmiş veya işaretlenmemiş dosyaların bir listesini tutar (kullanarak hg resolve
). U
Bu listede herhangi bir dosya varsa , işlem yapmanıza izin vermez.
hg resolve
özellikle çatışmalarla birleşmeler için kullanılır; bkz. selenic.com/mercurial/hg.1.html#resolve . Note that Mercurial will not let you commit files with unresolved merge conflicts. You must use hg resolve -m ... before you can commit after a conflicting merge.