Versiyon kontrol sistemleri (version control systems) depo (repository) içerisindeki değişiklikleri sürümler halinde tutabilmemize ve bu değişiklikleri kolayca yönetebilmemize imkan sunan sistemlerdir.
İhtiyaç nasıl ortaya çıktı?
Herhangi bir dosya da değişikliğin hangi zamanda kim tarafından ve neden yapıldığının kaydına ve takım çalışmalarındaki çakışmaların doğru yönetilebilmesine duyulan ihtiyaçlar sonucunda versiyon kontrol sistemleri ortaya çıkmıştır.
İstediğimiz bir anda geçmiş bir sürüme tamamen ya da kısmi olarak dönmemiz tutulan bu kayıtlar ile mümkün olabilmektedir.
Versiyon kontrol sistemi kullanmıyorsak, 3 yıl önce yaptığımız bir değişikliği ne zaman ve neden yaptığımızı hatırlayamayabiliriz değil mi? (Ki yazılım sektöründe genelde bir kaç ay öncesi yapılan değişikliklerin bile hatırlanması çok muhtemel olamıyor.)
Konuyu bir yazılımın kaynak kodu üzerinden örneklendirmek gerekirse; bir sınıf içerisindeki metodun ilk oluşturulduğu anda nasıl olduğunu ve sonrasında zaman içerisinde nasıl değiştiğini bilmek çok güzel olur değil mi?
Sürekli andığımız Önceki Yazılımcı’nın (ki her birimiz iş değiştirdikçe önceki yazılımcı oluruz) değişikliğine dair mesajları bize o değişikliğin neden yapıldığını, varsa ilgili iş kodu/bağlantısını vs. verecektir.
Özellikle ekip olarak geliştirdiğimiz bir üründe aynı modüller üzerinde paralel olarak geliştirme yapmamız gerektiğinde versiyon kontrol sistemleri çok daha önem ve anlam ifade etmektedir.
Özetle; değişiklik kayıtlarını detaylı tuttuğu için geçmişi bilmemizi ve değişiklik birleştirme yetenekleri ile geleceği hızlı ve doğru bir şekilde oluşturabilmemize imkan sunarlar.
Değişiklik geçmişinizin anlaşılabilir olduğu, önceki sürümlere dönmenizin gerekmediği ve conflict yaşamadığımız yeşil günlerde buluşmak dileğiyle…