Ana içeriğe atla

Versiyon Kontrol Sistemlerinde Branch Mantığı

Branch
Versiyon Kontrol Sistemlerinin temeli branch mantığının üzerine kurulmuştur desek herhalde yanılmış olmayız. Yazılımcılar tarafından yoğun olarak kullanılan Git Server olsun, SVN olsun veya diğer versiyon kontrol sistemleri, hemen hepsinde bir branch mantığı vardır. Tabi ki bu branchlerle çalışma her versyion kontrol sisteminde farklı olsa da genel mantığı hepsinde aynıdır. Bu makalemizde biz de versiyon kontrol sistemlerini özelliştirmeden hepsi için ortak olan konulara değineceğiz, öncelikle branchlerin ne olduğunu, branch mantığını ve ne zaman kullanıldığını açıklamaya çalışacağız. Konuya giriş yapabilmek açısından öncelikle versiyon kontrol sistemlerinde branch nedir onu açıklayarak başlayalım...
Branch sözünü türkçeye çevirecek olursak dal, kol gibi çevirebiliriz. Genelde Türkçe karşılığı olarak dal kelimesi kullanılır. Hatta arama motorlarında git branch veya svn branch diye arama yaparsanız ve görsellere bakarsanız da ağac dallarına benzer yapılar göreceksiniz. Versiyon kontrol sistemlerinde de aslında mantık aynıdır. Ortada dalların birleştiği projenin versiyonları iken dallar da projeyi geliştirdiğiniz ve en son projenize eklenilen özelliklerdir. Yani branchleri yani dalları projenizde yeni eklentileri yaptığınız bir yer olarak da görebilirsiniz.

Günümüz dünyasında bir projenin üzerinde binlerce kişi bile çalışabilir. Ama Türkiye'de genelde ekipler daha küçüktür. Tabi ki bu projenin de boyutu ile alakalı bir durumdur. Ama sonuç olarak kaç kişiyle birlikte çalışıyor olduğunuz çok bir önemi yok. Projede 2 kişi bile çalışıyorsanız projenizin geliştirme sürecinde versiyon kontrol sistemlerinden birini kullanıyorsanız branchlere ihtiyaç duyacaksınız. Hatta versiyon kontrol sistemlerine yeni başladıysanız ilk başta farketmeseniz de bir süre geçtikten sonra projelerin sağlıklı geliştirme sürecinde  branchlarin önemini daha iyi anlayacaksınız. İsterseniz branch konusunu daha iyi anlata bilmek için örnek üzerinden tipik bir iş senaryosu ile devam edelim.
Konuyu anlatabilmek açısından Ahmet ve Mehmet adlı iki yazılımcının aynı projede çalıştığını hayal edin. Projemiz de doküman yönetim sistemi olsun. Ahmet ve Mehmet proje geliştirme sürecinde yapacaklarına sabahki toplantıda karar vererek günlük işlerini yapıyorlar. Aynı zamanda bu süreçte haftalık ve aylık toplantılar yapıyorlar. Proje geliştirme sürecinde yönetim onlardan aylık bir sürüm çıkarmasını bekliyor. Peki Ahmet ve Mehmet aynı proje üzerinde çalışırken kodlarını bir araya nasıl getiriyor? Aslında versiyon kontrol sistemlerinin bir görevi de birden çok yazılımcının aynı projede sorunsuzca çalışmasını sağlamaktır. Bunu sağlamak için de branchleri kullanıyor dersek yanılmış olmayız. Örneğimize devam ederek günlük yapılacak iş için Ahmetin projeye word desteği, Mehmetin ise pdf desteği ekleyeceğini varsayalım. İkisi de projede dün kaldıkları yerden başlıyorlar. Ahmet word desteği branchinde, Mehmet ise pdf deteği branchinde çalışıyor. Ahmet ve Mehmet işlerini bitirdikten sonra sırayla yaptıkları işleri birleştiriyorlar. Ki buna da versiyon kontrol sistemlerinde merge işlemi deniyor. Yani iki ayrı çalışma kopyasını birleştirme işlemi merge etme işlemidir. Merge işleminden sonra Ahmet ve Mehmet bir araya gelerek çakışma olup olmadığını kontrol ediyorlar. Eğer herhangi bir yerde çakışma varsa bunları ortak bir yerde çözerek yani başladıkları ve yarın için başlangıç olacak yerde çözüyorlar. Bu işlemden sonra yarın için başllangıç noktası hazır oluyor. Versiyon çıkarmak gerektiğinde ise çalışma brachini master branch'e eşitleyerek versiyon üretmiş oluyor. 
Aslında branchlerle çalışmak için temel konulardan bir tanesi de merge işlemidir. Yukarıdaki örneklerde de kısaca bahsettiğim gibi merge işlemi branchlerle çalışırken olmazsa olmaz konulardandır. Çünkü dalların belirli noktalarda birleşmesi ve projenin dağılmaması için de önemli konulardan bir tanesidir. Merge işlemi branch oluşturmaktan daha zahmetli, ayrıntılı ve tecrübe gerektiren bir konudur. Bu yüzden genelde proje lideri tarafından yapılması tavsiye edilir. Merge işlemleri için daha sonra ayrıntılı bir makale daha yazacağım. Çünkü bu konuyu daha iyi anlamak sizin de çalışmanızı olumlu yönde etkileyecektir.
Konuyu çok uzatmamak açısından makalemi burada sonlandırmak istiyorum. Anlattığım konuların ve verdiğim örneklerin banchlari anlamanız için yeterli olduğunu düşünüyorum. Yine de söylemem gerekir ki branchler konusunu hiç bilmeyenler için ilk başta anlamak zor olabilir ama makalede okuduklarınız en azından sizin için kulak aşinalığı olacaktır ve düşünüyorum ki en azından branchlerin ne olduğunu, ne zaman kullanıldığını, proje ekibi içinde çalışma zamanı hangi rolleri üstlendiğini anlatabilmişimdir. Tabi ki proje ekibi içinde çalışma arkadaşlarınız da iyi olduğu sürece branchlerle çalışmak çok eğlenceli olacaktır. 

Umarım yazım sizin için faydalı olmuştur. Son olarak konuyu anlamadıysanız ve konuyla alakalı sorularınız varsa bana yazabilirsiniz. En kısa sürede yanıtlamaya çalışacağım.

Yorumlar

Bu blogdaki popüler yayınlar

Medyan (Ortanca) Nedir? Nasıl Hesaplanır? Nerelerde Kullanılır?

Medyan işlemi olasılık hesaplamalarında sıkça kullanılan bir sayı dizisinin ortalamasını hesaplamak için alternatif yöntemlerden bir tanesidir. Ortanca medyan işleminin diğer adıdır. Matematiksel olarak medyan işlemi bir sayı dizisi küçükten büyüğe sıralayarak ortada kalan elemanı medyan değeri olarak belirleme işlemidir. Örnek verecek olursak: 2, 1, 5, 4, 5, 1, 2, 3, 5 serisi sıralanırsa 1, 1, 2, 2, 3, 4, 5, 5, 5 serisi elde edilir. Bu seri 9 elemanlı olduğundan ortadaki, yani 5. eleman (medyan) olacaktır. 5. eleman 3 sayısıdır. Yani ortanca değeri 3'dür Eleman sayısı tek sayı olan bir seride medyan değerin sırasının hesaplaması şu şekilde formüle edilir. Medyanın Sırası = (Eleman Sayısı + 1) / 2 Bu formülü yukarıdaki örneği uygulayacak olursak; Medyanın Sırası = (9 + 1) / 2 = 5 Veri serisi eleman sayısı bir çift sayı ise bu durumda serinin 2 medyanı olacaktır. Örneğin 2, 1, 5, 4, 5, 1, 2, 3, 5, 4 serisi sıralandığında 1, 1, 2, 2, 3, 4, 4, 5, 5, 5 s

Ağaçlar Kireçle veya Badana İle Neden Boyanır?

Ağaçlar kireçle boyanmasının veya badana yapılmasının hem çevreye hem de doğaya, ağaçlara faydası var. Bu makalede bu geleneği enine boyuna tartışmaya çalıştık. Ağaca zarar veren mikrop ve bakterileri öldürür. Ağacı çok aşarı soğuk havalarda ve çok aşırı sıcak havalarda korur. Ağacın çürümesini ve kurtlanmasını önler. Ağacın gövdesinin alabileceği zararları en az düzeyde düşürmeyi sağlar. Hoş, güzel, hijyenik, temiz pırıl pırıl bir görüntü oluşturur. Ayrıca çok sıcak havalarda da ağacı yanmaya karşı korumak. En büyük etkisi soğuk havalarda ağacı don vurmalarına karşı korumak . Küresel ısınma göz önüne alındığında mevsim değişiklikleri ani don, ani ısı artışları ve azalışları sonucunun doğuracağı etkenler için yararlı etkin bir yöntem. Gövdeden obur dalların çıkmasını azaltmak için sürülür. Kireçleme ağaçları güneş yanığından korumak için yapılıyor. Ağaçlar da güneşten yanabiliyorlar. Bu arada odun dokudaki gözenekleri doldurarak kapattığı için, zararlıların yuv

Azərbaycan Dilində Vurğu Qəbul Etmeyen Şekilçiler

Sözlərdə hecalardan birinin digərlərinə nisbətən daha qüvvətli deyilməsinə heca vurğusu deyilir. Üzərinə vurğu düşən hecaya isə vurğulu heca deyilir. Azərbaycan dilində vurğu adətən söz sonuna düşür. Söz şəkilçi qəbul ederkən vurğu adətən şəkilçinin üzərinə keçir. Məsələn: çiç ə k - çiçəkl ə r - çiçəklərd ə n məkt ə b - məktəbl i - məktəblil ə r - məktəblilərd ə n Buna baxmayaraq dilimizdə bir sıra şəkilçilər var ki onlar vurğu qebul etmirlər. Bu məqalədə Azərbaycan dilində vurğu qebul etməyən şəkilçilər incələnəcək ve bu şekilçilərin hansı hallarda vurğu qebul edib hansı hallarda vurğu qebul etmediyi araşdırılacaqdır. Eyni zamanda bildirmək istəyirəm ki vurğu ilə bağlı daha geniş və ətraflı məlumat üçün Azərbaycan Dilində Vurğunun Praktik Məsələləri adlı məqaləyə də nəzər yetirə bilərsiniz.  1. İsimlərdəki şəxs(xəbərlik) şəkilçiləri Məsələn: müəli'məm müəli'msən müəli'mdir müəli'mik müəli'msiniz müəli'mdirlər Qeyd: -dır4