İlginizi Çekebilir
  1. Ana Sayfa
  2. Nasıl Yapılır?

Sürüm Kontrol Sistemleri Nelerdir?

Sürüm Kontrol Sistemleri Nelerdir?
sürüm kontrol sistemleri
+ - 0

Sürüm Kontrol Sistemleri Nelerdir?

Sürüm kontrol sistemleri, yazılım geliştirmedeki anlamından bağımsız olarak, bir dökümanın üzerinde yapılan değişikliklerin yönetilmesidir. Burada bahsedilen “döküman”, Bir ofis belgesi, websitesi, hatta bir uygulama programı bile olabilir.

Sürüm Kontrolü Nedir?

Yazılım geliştirme üzerinde özelleştirirsek, versiyon kontrolü bir yazılımın revizyonlar halinde güncellenerek geliştirilmesini sağlar.Böylece geliştirilen yazılımın geçtiği süreçler rahatça takip edilebilir.

Neden Sürüm Kontrolüne İhtiyaç Duyarız?

Birden fazla kişinin beraber çalıştığı projelerde proje gelişiminin hızlanması için. Yeni bir özellik üzerinde çalışırken “Ben buraya nereden geldim?”, “O kadar kod yazdım,derlenmezse yandık.” dememek için.

Açık kaynak projelerde hali hazırda tamamlanmış projeler baz alınarak geliştirilen yeni projelerde süreci kolaylaştırmak için.

Merkezi VKS Nedir?

Merkezi VKS Nedir? Merkezi versiyon yönetim sistemlerinde tüm kullanıcılar bütün değişikliklerini direkt olarak uzaktaki depo (repository) üzerinde yaparlar. Son revizyonu yapan kullanıcının yeni bir değişiklik yapıp uzak sunucuya göndermesi büyük olasılıkla bir sorun yaratmaz. Başka bir kullanıcı kendi değişikliklerini uzak depoya gönderip nihai hale getirmek istediğinde (commit) ne olacak peki?

Bu durumda ilk kullanıcının yaptığı değişiklikler yok mu olacak? Ya da ortada karman çorman bir kod yığını mı oluşacak? İkisi de değil. Uzak sunucudaki kodun stabilitesinin korunması için VKS ikinci kullanıcıya önce uzak depodaki kodu çalıştığı kodun üzerine indirmesini (update) isteyecek.

Uzak sunucudan gelen dosyalar sizin geliştirdiğiniz kodlar ile uygun şekilde birleştirilecek. (merge) Ardından ikinci kullanıcı değişikliklerini sorunsuzca uzak depoya yollayabilecek.

Merge işlemi versiyonun yönetiminin en can alıcı noktasıdır. Fakat bu işlem her zaman tereyağından kıl çeker gibi olmaz. Diyelim ki iki kullanıcı da bir dosyada aynı satırlar üzerinde değişiklik yaptılar. Bu durumda birleştirilen dosyada hangi kullanıcının değişikliği saklanacak?İşte bu ikileme versiyon kontrolü sözlüğünde conflict(çatışma) denir.

Çatışmayı tatlıya bağlamak: Solve Conflict Bir dosya üzerinde iki değişiklik çatışırsa çoğu zaman bu durumun düzeltilmesi için elle müdahele gerekir. Çatışmalar çözüldükten sonra gereken değişiklikler yapılarak yeni versiyon uzak sunucuya yollanabilir.

Özet olarak,Merkezi yönetim sistemlerinde asıl amaç elimizdeki versiyonun uzak sunucu ile aynı olmasıdır. Proje bittiğinde, hem uzak sunucuda hem de kullanıcıların elinde aynı versiyon bulunacaktır. Merkezi sistemler içinde en iyilerinden biri ve en yaygını olan SVN (Subversion)‘dir.

Sürüm Kontrol Sistemleri Nelerdir?

Merkezi Olmayan VKS Nedir?

Merkezi olmayan sistemlerde versiyonlama iki kademeli olarak gerçekleşir. Merkezi sistemlerde tek depo (repository) ve birçok kullanıcı vardır. Merkezi olmayan sistemlerde ise birçok yerel depo (local repository) ve birçok kullanıcı ile birlikte bir adet de uzak depo (remote repository) bulunmaktadır.Bu tarz sistemlerde, commit işlemi sadece yerel depoyu etkiler. Bu da sözlüğümüze yeni bir kelime ekliyor: Push

“Push” eylemi, daha önce yerel makinede commit edilmiş. Bütün revizyonları sırayla uzak depoya uygular. Buradaki süreç merkezi VKS’ler ile neredeyse aynıdır.Uzak depodaki versiyonun yerel depoya indirilmesi işlemine ise merkezi olmayan sistemlerde Pull denirBirleştirme işlemi, çatışma oluşması gibi olaylar aşağı yukarı aynı şekilde gerçekleşir.Merkezi olmayan versiyon kontrol sistemlerinin en güzel örneği Git’tir.

Yazar Hakkında

Bu Yazıyı Yorumla