Her ne kadar kişisel projelerim için DVCS kullanmış ve beğenmiş olsam da projenize katkıları başkalarından nasıl daha kolay yönetebildiğini (örn. Tipik Github senaryosunuz) tamamen görebilsem de, "geleneksel" bir ekip için bazı sorunlar olabilir. TFS, Perforce, vs. gibi çözümlerin kullandığı merkezi yaklaşım. ("Geleneksel" derken, hiç kimsenin "sahip olmadığı" bir projede çalışan bir ofiste geliştiricilerden oluşan bir ekip demek, potansiyel olarak herkes aynı koda dokunuyor.)
Bu sorunlardan birkaçı kendi başıma öngördüm, ama lütfen diğer hususlara dikkat edin.
Geleneksel bir sistemde, sunucudaki değişikliğinizi kontrol etmeye çalıştığınızda, başka biri çakışan bir değişikliği daha önce kontrol etmişse, sizinkini kontrol etmeden önce birleştirmek zorunda kalırsınız. DVCS modelinde, her geliştirici kendi yerel olarak değişir ve bir noktada başka bir repoya zorlar. Bu repo daha sonra bu dosyanın 2 kişinin değiştiği bir şubesine sahip. Görünüşe göre şimdi bu durumla başa çıkmak için birisinin görevlendirilmesi gerekiyor. Ekipte görevlendirilmiş bir kişi, tüm uyuşmazlıkları birleştirmek için kod tabanının tamamı hakkında yeterli bilgiye sahip olmayabilir. Şimdi, birisinin bu geliştiricilerden birine yaklaşması, birleştirmeyi çekmesini ve yapmasını ve tekrar itmesini (veya bu görevi otomatikleştiren bir altyapı inşa etmeniz gerektiğini) ekstra bir adım eklendi.
Dahası, DVCS yerel olarak çalışmayı bu kadar kolay hale getirme eğiliminde olduğundan, geliştiricilerin itmeden önce yerel depolarında birkaç değişiklik biriktirmesi olasıdır, bu tür çatışmaları daha yaygın ve daha karmaşık hale getirebilir.
Takımdaki herkes sadece kodun farklı alanlarında çalışıyorsa, bu bir sorun değildir. Ama herkesin aynı kod üzerinde çalıştığı durumu merak ediyorum. Merkezileşmiş model çatışmaların hızlı ve sık sık ele alınmasını zorlar ve büyük, ağrılı birleşmeler yapma veya ana repoyu "polise" alma zorunluluğunu azaltır.
Ofisinizdeki ekibinizle DVCS kullananlarınız için bu tür davaları nasıl ele alıyorsunuz? Günlük (veya daha olası, haftalık) iş akışınızın olumsuz etkilendiğini düşünüyor musunuz? İşyerinde bir DVCS önermeden önce dikkat etmem gereken başka noktalar var mı?