Bu yazımda sizlere önce Team Foundation Server (TFS)'nin kaynak kod kontrol özelliğinden biraz bahsedeceğim. TFS'nin muhtemelen kullanılmaya başlayan ilk bileşeni kaynak kod kontrol sistemidir. Sağladığı özellikleri listelemek gerekirse:
- TFS kaynak kod kontrol sistemi dosyaları SQL veritabanı içerisinde saklar. Dolayısı ile gerektiği kadar güçlendirmek ve ölçeklendirmek mümkündür. Ayrıca istemcilerle iletişimi de tamemen web servisleri üzerinden olduğu için ağ üzerindeki uzaklıktan bağımsız olarak son derece hızlı çalışır. Zaten yüksek kullanıcı sayısı için tasarlanmıştır. Altına yeterli güçte bir donanım koyduğunuzda milyonlarca dosyayı, binlerde kullanıcyı duymaz bile.
- Tüm işlemler atomik yapıda çalışır. Yani 100 dosyayı sunucuya iade ederken 99ncu dosyada çakışma çıkarsa tüm yapılan işlem geri alınır. Sunucudaki dosyalar yarı pişmiş halde bırakılmaz.
- TFS aynı dosyayı aynı anda birden fazla kullanıcının üzerine almasına izin verir. Oluşacak muhtemel çakışmaları da oldukça iyi yönetir. İstenildiğinde dosyaların sadece bir kullanıcı üzerinde olmasına imkan sağlar (Lock). Otomatik birleştirme (auto-merge) algoritmaları son derece başarılıdır.
- Dosyalar TFS üzerinde aynen windows'un klasör yapısına benzer sanal bir ağaç yapısında saklanır. TFS açısından dosyaların içeriği önemli değildir. Onun açısından hepsi birer metin dosyasıdır. VB, C# ya da başka birşey olmasıyla pek ilgilenmez. Hatta daha önceden adı Teamprise olan, daha sonradan Microsoft'un satın almasıyla Team Explorer Everywhere adını alan eklenti sayesinde Eclipse ortamı üzerinde Java dünyasına da girer, Java kodlarını da memnuniyetle saklar.
- TFS dosyaların tüm tarihçelerini saklar. Herhangi bir dosyanın herhangi bir zamandaki haline ulaşmak. Tüm geçmiş sürümlerini görmek ya da herhengi iki sürümünün arasındaki farkları görmek mümkündür (File History). Hatta bunun bir adım da ötesine geçerek bir dosyanın üzerindeki her bir satırın hangi tarihte kim tarafından neden yazıldığını görmek mümkündür (Annotate).
- Çok güçlü bir branch mekanizması vardır. Kaynak kod ağacının herhangi bir noktasına farklı ve çok kademeli dallar oluşturmaya izin verir (Branch). Farklı dalların üzerindeki değişiklikleri çift yönlü olarak birleştirebilir (Merge). Farklı dallar üzerindeki dosyaların ilişkilerini takip etmeye devam eder ve herhangi bir dalda yapılan bir değişikliğin "Merge" işlemleri ile adım adım hangi dallara aktarıldığını takip etmek mümkündür.
- TFS'in rafları vardır. Yani bir kullanıcıya üzerindeki tüm değişiklikleri sunucu üzerinde bir rafa kaldırma (Shelve), daha sonra başka bir noktada raftan tekrar bilgisayara indirme (Unshelve) şansı verir. Bu mekanizma kod gözden geçirme çalışamalarında ve özellikle check-in edilmeye hazır olmayan kodları saklamada ya da makinadan makinaya taşımada çok kullanışlıdır.
- Son olarak gelişmiş bir yetkilendirme sistemi vardır. Kaynak kod ağacının herhangi bir noktasında, branch'ler üzerinde, ya da dosya bazında kişilere ya da gruplara ayrıntılı yetkiler tanımlanmasına olanak tanır.
- Kaynak kod sistemi özellikle Work Item sistemi ile olan entegre çalışması sayesinde müthiş olanaklar sağlar ama bu konuya Work Item sistemini anlatırken geleceğiz.[1]
1. Visual Studio Kullanarak Team Foundation Server'a Bağlanma
Visual Studio ile bağlanmak için bir kaç yol var, en kolayından başlarsak önceden var olan bir Collection'a bağlanalım.
Visual Studio 2013'ü açtığımızda şekil 1'de gösterildiği gibi Team menüsünden Connect to Team Foundation Server ile ilerliyoruz.
![]() |
Şekil 1: Team Foundation Server'a Bağlanma |
![]() |
Şekil 2: Team Foundation Server Ekleme |
![]() |
Şekil 3: Team Foundation Server'a Bağlanma |
2. Visual Studio ile Team Project Oluşturma
Yukarıda servera bağlandık ama hali hazırda kullanabileceğimiz bir team project'imiz bulunmamaktadır. Bunun için adım adım proje oluşturmaktan bahsedeceğim.
Proje oluşturmak için bir kaç seçeneğiniz var ama en kullanışlısından başlamak gerekirse ilk olarak şekil 4'te görüldüğü gibi Team Explorer menüsünden Create Team Project diyerek açılan pencerede oluşturmak istediğimiz projenin adını ve istersek açıklamasını girerek ilerliyoruz.
![]() |
Şekil 4: Team Project Oluşturma |
https://msdn.microsoft.com/en-us/library/ms400752.aspx
![]() |
Şekil 5: Process Template Seçimi |
Team Foundation Version Control (TFVC ), merkezi sürüm kontrol sistemidir. Tipik olarak, ekip üyelerinin development makinelerinde her dosyanın sadece bir sürümü var. Tarihsel veriler yalnızca sunucu üzerinde tutulur. Branchlar yol tabanlıdır ve sunucu üzerinde oluşturulur.
TFVC değişiklikler yapmak için ekibinize iki model sağlar:
Server Workspaces: Ekip üyeleri, değişiklik yapmadan önce dosyaları herkesin bileceği şekilde kullanıma alır. Çoğu işlem developerların sunucuya bağlı olmasını gerektirir. Bu sistem iş akışlarını kilitlemenizi kolaylaştırır.
Local Workspaces: Her ekip üyesi, kod tabanının en son sürümünün bir kopyasını yanına alır ve gerektiğinde çevrimdışı olarak çalışır. Developerlar değişikliklerini check in eder ve conflictleri gerektiği şekilde giderir.
Git , dağıtılmış sürüm denetim sistemi şeklindedir. Her developerın development makinesinde kaynak deposunun tamamının bir kopyası vardır. Developerlar her değişiklik kümesini development makinelerinden commit edebilir ve geçmiş ve karşılaştırma gibi sürüm denetim işlemlerini bir ağ bağlantısı olmadan yapabilir. Branchlar hafif nesnelerdir. Kod tabanınızın farklı çeşitleri arasında pivot olması için bir branchtan diğerine hızla geçebilirsiniz. Daha sonra, branchı merge, publish ya da dispose edebilirsiniz. [2]
Gelelim bizim seçeceğimiz sisteme. Ben şekil 6'da görüldüğü gibi TFVC seçerek bitiriyorum.
![]() |
Şekil 6: Source Control Ayarlarını Belirleme |
![]() |
Şekil 7: Source Control Explorer |
İlk adımımızı atarak kendimize bir hesap oluşturduk ve bu hesabı kullanarak ilk projemizi oluşturduk. Ama asıl önemli olan nokta projemize diğer ekip üyelerinin de katılmasını sağlamak. Bunun için ilk olarak şekil 7'de görüldüğü üzere Team Explorer menüsünden Task Board'u açıyoruz.
Daha sonra proje ekranı karşımıza çıkmaktadır.
![]() |
Şekil 8: Ekip Projesi Ekranı |
Şekil 8'de görüldüğü üzere ekip projesi ekranının sağ tarafındaki sütunda, Etkinlikler ile Yönetim arasında bulunan Üyeler bölümü sayesinde kolaylıkla projemize yeni ekip üyeleri ekleyebiliriz. Bir proje oluşturduğumuzda varsayılan olarak projenin bir üyesi olacağımız için bu bölümde ilk kendi adımızı görüyoruz. Yeni ekip üyelerini de projeye dahil etmek için bu bölümde yer alan "Takım üyelerini yönet…" linkini kullanıyoruz. Bu link projemiz için takım üyelerini yönetme penceresini açmaktadır. Buradan hızlıca ekip üyeleri/gruplar ekleyebilir ya da mevcut ekip üyelerinden/gruplardan istediklerimizi çıkartabiliriz. Pencerenin sol üst köşesinden bulunan Ekle menüsü altıda yer alan "Windows kullanıcısı veya grubu ekleyin" ve "TFS grubu ekle" seçenekleri bize kullanıcı ve/veya grup ekleme olanağı sunmaktadır.
Şekil 9'da görüldüğü üzere, ekip projemize yeni bir kullanıcı eklemek için kullanıcının desteklenen bir kimlik sağlayıcı ve geçerli bir kullanıcı olması gerekmektedir. Bundan emin olmak için Ad Denetle linki ile geçerli olup olmadığını kontrol edebiliriz yada Gözat linki ile tanımlı kullanıcılardan bir ya da bir kaçını seçebiliriz. Kimlik kısmından emin olduktan sonra değişiklikleri kaydet diyerek kullanıcı eklemeyi tamamlayabiliriz.
Haftaya örnek projemiz üzerinden folder ve branch oluşturmayı anlatacağım. Bir sonraki yazımda buluşmak üzere, okuduğunuz için teşekkürler.
Referanslar:
[1]TFS Bileşenleri-Kaynak kod kontrolü, http://emretoptanci.blogspot.com.tr/2010/09/tfs-bilesenleri-15-kaynak-kod-kontrolu.html, 12.03.2015
[2]Version Control, https://msdn.microsoft.com/tr-tr/library/ms181368.aspx, 12.03.2015
![]() |
Şekil 9: Yeni Kullanıcı Kimliği |
Haftaya örnek projemiz üzerinden folder ve branch oluşturmayı anlatacağım. Bir sonraki yazımda buluşmak üzere, okuduğunuz için teşekkürler.
Referanslar:
[1]TFS Bileşenleri-Kaynak kod kontrolü, http://emretoptanci.blogspot.com.tr/2010/09/tfs-bilesenleri-15-kaynak-kod-kontrolu.html, 12.03.2015
[2]Version Control, https://msdn.microsoft.com/tr-tr/library/ms181368.aspx, 12.03.2015
Güzel bir yazı olmuş, eline sağlık.
YanıtlaSilOluşturduğun bu projeye ikinci bir developer katılmak istese ne yapması gerekiyor? Ondan da bahsedebilir misin?
Selamlar,
Muzaffer.
Tabi ki, yönetici tarafından projeye nasıl yeni bir kullanıcı ekleyeceğimizden bahsedip güncelledim.
SilTeşekkür ederim.
Öncelikle paylaşımlarınızın benim için çok değerli olduğunu vurgulayarak size teşekkür etmek isterim. Aklıma takılan bir soru vardı. Bu konuda yardımcı olabilirseniz sevinirim. Yanlış anlamadıysam oluşturduğumuz projeye ekleyeceğimiz kullanıcıları, daha önceden windows kullanıcısı olarak eklememiz gerekiyor. Bunun server'a erişime olanak sağlayacağını düşündüğüm için daha güvenli bir yolu olup olmadığını öğrenmek istiyorum. İyi geceler.
SilÖncelikle paylaşımlar için teşekkürler. Makaleleri baz alarak kurulumu tamamladım fakat kullanıcı ekleme konusunda sorum olacak. Anlattığınız şekilde kullanıcı eklersem sadece kendi bilgisayarımdan farklı bir kullanıcı hesabını ekleyebiliyorum. Farklı bir bilgisayar kullanan arkadaşı projeye dahil etmek için nasıl bi yol izlemeliyiz ?
YanıtlaSil