Git ve Çakışmalar
Artistanbul’da sürümler arası çakışmaları önlemede kullandığımız araçlardan biri, Meld.
Sürüm kontrol sistemlerinden biri olan Git, günümüz yazılım projelerinin geliştirme aşamalarında olmazsa olmazlardan. Dağıtık sürüm kontrolünde projenin tutulduğu tüm depo, yerel (local) sistemine klonlanır. Böylece yerel sistemde çalışıp istediğimiz zaman sunucuya gönderebiliriz. Gönderim aşamasında bazı sebeplerden dolayı çalıştığımız dosyada çakışmalar çıkabilir. Mesela sunucuya gönderdiğimiz dosya bizden önce üzerinde çalışan biri tarafından değiştirilmiş olabilir ve bizim değişikliklerimiz bunlarla çakışıyor olabilir veya daha önce yapılan bir değişikliği geri alırken geri aldığımız değişiklik sonrasında yapılan değişikliklerle çakışabilir, bunlara benzer durumlarla karşılaşabiliriz ve bu sorunların elle düzeltilmesi gerekir.
Bazen müşteriden eski sürüme dönme talebi geliyor ve eski sürüme dönerken o sürümden sonra yapılmış bazı değişikliklerin projede kalması isteniyor ya da farklı dallar altında yapılan geliştirmelerin birleştirilmesi istenebiliyor. Bu gibi durumlar çoğu zaman çakışmaya sebep olabiliyor. Böyle bir çakışmayla karşılaşırsak döneceğimiz sürümden sonra yapılmış bütün değişiklikleri ve mevcut değişiklikleri kodu inceleyerek düzenlememiz gerekir. Bunu bir araç kullanmadan yapmak mümkün fakat tek tek bütün değişiklikleri karşılaştırmak, binlerce satır kodu incelemek bir hayli zor olacağından Git için geliştirilmiş araçlar kullanıyoruz. Bu gibi durumlarda kullanıcıların kolay bir şekilde değişiklik yapabilmesi için geliştirilmiş birçok araç mevcut. Bu araçları kullanarak daha önce yapılan değişiklikleri ve çakışmaları inceleyebilir bu çakışmalar üzerinde düzeltmeler yapabiliriz. Meld bu araçlardan bir tanesi, aynı zamanda dosya ve dizin karşılaştırması gibi özelliklere de sahip.
Meld, basit arayüzüyle kullanıcılara kolaylık sağlıyor. Sorunun nerede olduğunu ve diğer yapılan değişiklikleri işaretleyerek gösteriyor. Çakışan mevcut dosyanız orta bölmede yer alıyor, bizim değişikliğimizden sonra yapılan değişiklik sol bölmede, daha önce yapılan değişiklik ise sağ bölmede yer alıyor. Çakışmalar kırmızı işaretlenmiş halde gösteriliyor. Biz hangi kısmın mevcut dosyada yer alıp almayacağına karar verip, kodun istediğimiz kısmını orta bölmedeki mevcut dosyaya kopyalayabiliyor ya da mevcut dosyadan kaldırabiliyoruz. Böylece dosyadaki çakışmaların üstesinden geliyoruz.