- Git merge conflict'lerini çözmek için kullanılan bir araç; dosya içindeki ağacı anlayarak iki tarafın ihtiyaçlarını uyumlu biçimde çözer
- Yeni diller bildirimsel olarak eklenebilir
- Git'in varsayılan merge algoritması yerine Mergiraf'ın kullanılacağı şekilde yapılandırılabilir
merge, revert, rebase, cherrypick gibi Git komutlarını iyileştirir
- Ya da Git'in özgün davranışı korunurken, çatışma oluştuğunda Mergiraf manuel olarak çağrılabilir.
Mergiraf'ın hedefleri
- Çatışmaları gizlememek
- Sözdizimi farkında merge sezgisel yöntemleri bazen aşırı iyimser davranıp bir çatışmanın çözüldüğünü varsayabilir
- Mergiraf, şüpheli durumlarda dosyada çatışma işaretlerini koruyarak mümkün olan en iyi durumu muhafaza eder
- Tüm çatışmaları kendi başına çözdüyse, arabuluculuk işlemini
mergiraf review komutuyla gözden geçirmeniz önerilir
- Merge işlemi yanlış görünüyorsa,
mergiraf report ile bunu kolayca bildirebilirsiniz
- Etkileşimli kullanım için yeterince hızlı olmak
- Zürafalar saatte 60 kilometre hızla koşabilir
- Bir dosyanın dallanmış sürümlerini birleştirme işi, çatışma olmadığı sürece çoğu zaman fark edilmeden rutin olarak gerçekleşir
- Mergiraf, iş akışını kesintiye uğratmamak için hızlı olmaya çalışır
- Diğer yöntemlere açık olmak
- Pek çok durumda satır tabanlı birleştirme iyi çalışır ve ağaç manipülasyonu gerekmez
- Satır tabanlı birleştirmede çatışma yoksa Mergiraf bu birleştirmeyi döndürür (çok hızlıdır)
- Satır tabanlı birleştirme yinelenen anahtarlar oluşturursa, Mergiraf sorunu çözmek veya çatışma işaretleriyle vurgulamak için biraz ek çalışma yapar
2 yorum
Zürafaların saatte 60 kilometre hızla koşabildiğini biliyor muydunuz?
Hacker News görüşü
SemanticDiff'e benzer bir iş yapıyorlar ve tree-sitter ile GumTree kullanırken sorunlar yaşıyorlar
Mergiraf'ın mimari bölümü, karmaşık bir aracın nasıl çalıştığını derinlemesine açıklıyor
Zürafayı seçme nedenleri, boyu sayesinde uzağı görebilmesi ve kara memelileri arasında en büyük kalbe sahip olması
Bazı eklemelerde sıranın önemli olmadığını iddia etmelerine eleştirel yaklaşılıyor
struct Foo; struct Bar;arasında Leftimpl Foo { }eklerken Rightstruct Baz;ekliyorsa, bilgisayar farkı algılamıyorGit'in merge driver geliştirmesine olumlu bakılıyor
printifadelerini silmesi geçersiz kod oluşturabiliyorEkipler, probleme uyacak şekilde temel dili genişlettiğinde sözdizimi farkındalığı olan araçlar sorun yaşayabiliyor
Otomatik biçimlendirmeyle ilgili çakışmaları çözmeye yardımcı olabilecek bir fikir
Mergiraf'ı denemeyi planlıyor ve git-absorb ile birlikte kullanıyor
Python desteği faydalı görünüyor
Dil desteği sınırlı, ancak daha fazla dil desteği eklenmesi isteniyor