LangTurk | Subversion nedir? Trunk, branch ve tag klasörlerinin görevleri nelerdir?

Subversion nedir? Trunk, branch ve tag klasörlerinin görevleri nelerdir?

10 AÄŸustos 2008, Pazar 6 pm | Yazan : webdr | 296 okunma |

| 296 okunma

Günümüz yazılım geliÅŸtiricileri, kaynak dosyaları belirli bir yerde toplayarak iÅŸlerini kolaylaÅŸtırmaktadırlar, bu konuda en büyük yardımcıları ise Subversion’dur. Artık yazılımlar sadece bir ülkeden ve aynı dili konuÅŸan geliÅŸtiriciler ile deÄŸil, pek çok ülkeden farklı dilleri konuÅŸan geliÅŸtiricilerin katkılarıyla oluÅŸturulmaktadır ve onların iÅŸini kolaylaÅŸtıracak her araç önemlidir.


Subversion kısaca sürüm takibi anlamına gelir. Bir örnekle açıklamak istiyorum.

Öncelikle subversion olmadığında neler olacağına bakalım. Mesela Z yazılımını geliştiren toplam geliştirici sayısı 10 olsun bu 10 kişiden, verilen kaynak dosyalarında, birbirlerinden habersiz yapacakları değişikliklerin ve düzenlemelerin sonucu ortaya bir Z yazılımının çıkarmalarını bekliyoruz, böyle bir durumda neler olabilir? Her geliştirici kendine has değişiklikler yaptığı için önce bu değişiklikler grup arasında değerlendirilmelidir bunu SVN olmadan nasıl yaparlar bilmiyorum bir forum, ya da anında mesajlaşma yazılımlarından birinde yapacakları toplantıyla mı? Böyle olunca doğal olarak herkesin yaptığı değişikliğin değerlendirilmesi çok uzun zaman alacaktır ve sonra konuşulanlara göre tekrar değişiklikler yapılır ve bunların uygulanması aşamasına gelinir diyelim, gelinir de sonuçta Z yazılımının ortaya çıkması için çok fazla zaman ve boşuna emek harcanacaktır. Ve Z yazılımını oluşturan asıl dosyaların ya da daha sonra değiştirilmiş en güncel sunumlarının nerede olduğundan belki proje lideri hariç kimsenin haberi yoktur. Ortada işleri kolaylaşıtırabilecek bir düzenin eksikliği söz konusudur.

Peki diyelimki Subversion var ve aynı senaryo; neler olacağına bakalım. Z yazılımının kaynak dosyaları herkesin ulaşabileceği bir dizine (web sunucusunda) yerleştirilir, her geliştiriciye kendine ait parola ve kullanıcı adı verilir, daha sonra her geliştirici bu hesaba bir subversion yazılımı kullanarak girer ve gerek gördüğü dosyalarda değişiklikler yapar, yaptığı değişikliğin sebebini ve neler yaptığını bir not şeklinde değişikliğe iliştirebilir ve diğerlerinin görmesini sağlar, değişiklik yaptığı eski dosya halen subversion içinde barındırıldığından eğer grup üyeleri tarafından onaylanmazsa yapılan değişiklikler kolayca geri alınır. Hatta bu iki dosya arasındaki farkı görmek isteyen kullanıcılar, eski dosyalar yine sunucuda olduğu için metin farklarını karşılaştıran yazılımlar aracılığı ile nelerin değiştiğini satırı satırına görebilirler.

Yukarıda saydığım özelliklerin yanında SVN yani subversion, çevirmenler için de kolaylık saÄŸlamaktadır, Z yazılımının çevirmenine SVN giriÅŸ hakkı verilir, bu çevirmen SVN aracılığı ile dil dosyasındaki deÄŸiÅŸiklikleri, neler yapılıp yapılmadığını görür ve kendi dil dosyasını düzenleyerek bu dizine geri gönderir ve onun yaptığı deÄŸiÅŸiklikleri de diÄŸer takım arkadaÅŸları görür, bu iÅŸlem bir yazılımın çeviri açısından güncel tutulmasında önemlidir çünkü yazılım en nihayetinde SVN’de bulunan kaynak dosyaların derlenmesi ile oluÅŸturulur.

Subversion hakkında yeterince bilgimiz oldu herhalde ancak nedir bu subversion’un yapısı, tabiki daha önceden konuya ilgi duymayan ve birden bire subversion kullanan ve http://svn. ile baÅŸlayan adresi gören kimse, olayı yadırgayabilir ve hatta soÄŸuyabilir ancak bir kere kullandığında saÄŸladığı kolaylıklar karşısında vazgeçemiyeceÄŸi bir yazılımla karşılaÅŸacaktır. Bu nedenle hem bu geçiÅŸ aÅŸamasını kolaylaÅŸtırması hem de ön bilgi vermesi açısından subversiondaki klasörlerden bahsedeceÄŸim.

Temelde bir subversion içerisinde üç adet klasör bulunmaktadır ve bunlar standarttır.

Trunk
Branch
Tag

Kelime anlamları Türkçe olarak verilirse pek bir ipucu sağlamayan bu klasörlere yine Z yazılımından örnekle gözatalım.

Trunk: Z yazılımının en güncel sürümünü oluşturacak kaynak kodlarının bulunduğu klasördür. Geliştiriciler genellikle bu klasör üzerinde çalışırlar ve yaptıkları en son değişiklikler genellikle bu klasördeki kaynak dosyalardadır. Ancak böyle bir durumda en kararsız olan dosyalarda bunlardır o yüzden son kullanıcıya bu dosyaların en son halinden oluşturulan yazılım verilmez.

Branch:Trunk’da son haline getirildiÄŸine inanılan dosyalar Branch’a aktarılır, Branch içindeki kaynak dosyalar son kullanıcıya ulaÅŸtırılacak olan Z yazılımının kararlı olduÄŸuna inanılan kaynak dosyalarıdır. Z yazılımı yayınlandıktan sonra geliÅŸtiriciler yine yapacakları deÄŸiÅŸiklikleri Trunk içerisinde yapmaya devam ederler.

Tags: Aynı etiketleme işlemi gibidir, mesela trunk içinde Z yazılımının 1.0.1 beta sürümünü oluşturan kaynak dosyalar var ve yazılım geliştiricileri bu dosyaları bir şekilde ayırmak ve sınıflandırmak istiyorlar, taki kararlı sürüm çıkana ya da daha sonraki herhangi bir zamana kadar geliştirme aşamalarının etiketlemek istiyorlar, o zaman tag klasörü içine Z 1.0.1 beta adında bir klasör açarlar ve bu klasör içinde trunkta bulunan ve bu sürümü oluşturan kaynak dosyalar bulunur.

Daha sonra konu ilgimi fazlaca cezbedmeye başlarsa daha ayrıntılı makaleler yazabilirim.

Kolay gelsin.

Etiketler: , , , , , ,

Bu Yazıyı Paylaşın: Bağcık |Webiket |Oyyla |LinkiBol |Favorri |Tusul |del.icio.us |

İlişkili diğer yazılar


  1. “Subversion nedir? Trunk, branch ve tag klasörlerinin görevleri nelerdir?” yazısına 3 yorum var

  2. resim demiÅŸ ki;

    11 AÄŸustos 2008, Pazartesi 11 am | Cevapla

    teşekkürler.

  3. Benimol demiÅŸ ki;

    22 Ekim 2008, Çarşamba 4 am | Cevapla

    çok güzel bir anlatım olmuş elınıze saglık..

  4. genç portal demiş ki;

    16 Kasım 2008, Pazar 5 pm | Cevapla

    bilgi için teşekkürler.

Yorumlarınızı bekliyoruz!