3. VS 2013 ile Branches

Notes
3 min readAug 23, 2015

--

Git, Github, Visual Studio 2012 | | 2013Github Entegrasyonu

Branch, svn sisteminde dallanma demek. Branch’ler yaptığınız projenin alt sürümlerini çıkarmada yardımcı olan bir özellik. Var olan ana sürümü bozmadan, o sürümden bir branch alarak, onun üzerinde modülü geliştirip, bitirdikten sonra, çalıştığını görüp, testini yapıp, başarılı olduğunu gördükten sonra bunu ana branch’e (master) ekleyerek, projenin extends olmasını ( genişlemesini) sağlayabiliriz.

Bir projenin 1'den fazla sürümü vardır. Örneğin; basic sürüm, pro sürüm ve education sürüm gibi. Basic sürümünü belli bir yere kadar getirip, bir branch alıp pro sürümüne devam edebilirsiniz. Bu gibi amaçlar için branch kullanılabilir. (Modül geliştirme de diyebiliriz)

Branch’ a güzel bir örnek vermek gerekirse; sizin ürününüzün versiyon 2.0 sürümü piyasada bulunmaktadır, çok kullanılıyordur ve bu sürüm oldukça seviliyordur. Bu sürümü bozmadan versiyon 3.0'ı çıkarmak istiyorsunuzdur, branch kullanarak çıkarabilirsiniz. İkisini senkron götürebilirsiniz. 2.0'ın da gelişmesi devam edebilir 3.0'ında. ( Windows 7 hala geliştirilirken Windows 8 ve Windows 10 ‘un da geliştirilmesi gibi)

Team Explorer’ın ana sayfasından Branch’ e tıklayıp New Branch diyerek yeni bir branch oluşturabiliriz.

New Branch

Yukarıdaki örneğe göre diyelim, FavoriKisilerModulu nü kodladık. Commit ederken dikkat edeceğimiz kısım branch’in hangisinin olduğu. Aşağıda da görüldüğü gibi TelefonRehberi projesinin master branch’inde FavoriModulu yok iken diğer branch’de eklenmiştir. Bu modülü kodlayıp, test edip, çalışır hali ile ana koda (master branch) entegre edebiliriz.

1.branch commit/ 2. TelefonFavoriKisilerModulu branch’i 3. master branch

İki farklı branch’i birleştirmek için merge komutunu kullanıyoruz. Örneğin; FavoriModul branch’ını master branch ile birleştirmek istesek ama iki farklı branch’in aynı dosyalarında değişiklik yapsak conflict(çakılma) meydana gelir. Aşağıdaki resimde master branch’a ekleme yapılıyor. Okun sol tarafı kaynak branch’i, sağ tarafı ise hedef branch’idir.

merge ve comflicts

Bu durumu düzeltmek için Resolve the conflicts’e tıklıyoruz.

merge, compare

İki farklı branch’deki kodları karşılaştırmak için Compare Files’a tıklayabiliriz. Yukarıdaki gibi gözükür ekran. Eğer sadece kaynaktaki dosyayı almak istersek Take Source, hedefteki dosyayı tutmak için ise Keep Target diyebiliriz.

İki farklı classtakilerden de kaybetmek istemediğimiz kodlar var ise tekrar merge tıklayıp üçüncü bir seçenek oluşturuyoruz ve iki koddan da istediğimiz yerlere checkbox koyup, sol üstte yer alan Accept Merge’e tıklayarak merge ediyoruz.

merge

Tekrardan Team Explorer dan Commit Merge diyip, yorumu yazıp onaylıyoruz. master branch’e tekrar baktığımızda, önceden onda olmayan FavoriModulu.cs artık master branch’de ve Program.cs hem eski kodlar hem de TelefonFavoriKisilerModulu’ndeki Program.cs kodları bulunmaktadır.

master branch son durum

--

--