yazılım,c# ve domates kabuğu
« SysInternals satın alındıGüncellendik »

Source Control Nasıl Kullanılır

  19/07/06 11:15, by ertan, Categories: c#, Coding, Yazılım

Şirketimizde svn kullanıldığı için anlattıklarım onun üzerine kurulu olacak ama genel kurallar olduğu için aynısını diğer tipdeki scm'ler üzerinde de uygulayabilirsiniz.

Dizin yapısı

İlk olarak svn üzerinde aşağıdaki isimlerle iki tane ana dizin açın

/products

/projects

Eğer şirketinizde ürün geliştirmesi yapıyorsanız yaptığınız işi products altına, müşteriye özel bir uygulama ise projects dizini altına koyun. böylece ürün ile özel projeleriniz iç içe geçmez.

Bu dizinlerin altında da

/trunk

/versions

/tags

adında 3 tane dizin daha açın.

trunk dizini geliştirdiğiniz kodun en son (HEAD) halini taşıyacak. yaptığınız tüm geliştirmeleri bu dizin altında tutun.

versions altında her versiyon için trunk'ın kopyalarını tutun. yani 1999 yılında çıkardığınız versiyon 2.3 bu dizin altında bulunmalıdır. Örneğin "/versions/Turşu_2.3" gibi.

"Turşu" sizin ürününüzün adı, 2.3 ise versiyon numarasıdır.

tags altında özel olarak işaretlemek istediğiniz (yani aslında bir versiyon olmayan versiyon) kodlar bulunsun. bu dizin üstünde bir çeşit çalışma alanı üretebilirsiniz. Mesela 2.3 üzerinde bir fonksiyonu denemek istiyorsunuz ama 2.3 versiyonuna dokunmak istemiyorsunuz bu durumda bu tags altında bulunmalıdır. bu dizin altında standart bir isimlendirmeye pek ihtiyaç duymazsınız.

Çok büyük yazılım firmalarında bu tags dizini workspace olarak kullanılır ve programcılar bu dizin üstünde işini bitirdikten sonra yaptıklarını trunk dizini ile birleştirir (merge). ama bu nadir olan bir durum.

Bunları yaptığınızda elinizde şunlar olacak

* trunk dizininde kodun son hali. (yani alfa bile olmayan programcıların elinden çıkmış sürüm)

* versions dizininde işaretlenmiş versiyonlar (yani bir seviyeye gelmiş trunk'ın kopyası)

Versiyonlama

Diyelimki var olan kodunuzun üzerinden yeni bir versiyon çıkartmaya karar verdiniz bu durumda yapmanız gereken trunk dizinini versions altına numara vererek (2.3 gibi) kopyalamak.

Ve diyelimki çıkardığınız versiyon üzerinde bir hata çıktı. bunu trunk dizini altında düzeltin ve yeni bir versiyon (2.3.1 gibi) olarak kopyalayın. bu şekilde hatasız bir versiyona ulaşana kadar devam edin (2.3.5 gibi). Bu versiyon sizin production versiyonunuz olacaktır ve bu versiyonu gönül rahatlığıyla müşterinizle paylaşabilirsiniz.

Eğer farklı takımlar aynı trunk üzerinde farklı işler yapıyorlarsa düzeltmeyi trunk üzerinde değilde 2.3.1 versiyonunda yapın. daha sonrada yaptığınız düzeltmeyi trunk ile birleştirin (merge) edin. böylece çıkan kod stabil kalacaktır.

Bundan sonra belirli bir versiyonu dışarı alıp (checkout) derlemek. istediğiniz anda istediğiniz versiyona ulaşmış olacaksınız.

Derleme

Müşterinize vereceğiniz kodu asla ama asla IDE üzerinden derlemeyin. bunun için msbuild gibi commandline'dan çalışan ve otomatiğe bağladığınız bir sistem oluşturun kendinize.

Eğer derleme yapılırken size ait olmayan componentler kullanıyorsanız sadece derleme için gerekli olan dosyalarıda svn üzerinde kodların bulunduğu dizinlerin içinde "references" gibi bir dizin altında tutun. böylece o dosyalarda sizin kodunuzla birlikte versiyonlanmış olur. (korkmayın yeni versiyon çıkardığınızda sadece revizyon numarası tutulacağı için bu diskinizde yer kaplamaz)

Bunun için kendi şirketimizde bir web arabirimi oluşturduk ve istediğiniz versiyonu web üzerinden derleyebiliyorsunuz. derlenmiş exe'leride yine web server üzerinden indirebiliyorsunuz.

Son olarakda tembel programcılarınız tüm bu versiyonlama sistemini karmaşık bulacağından debug sürümdeki exe'ler için sabit bir versiyon no (0.0.0 gibi) kullanın. gerçek versiyonu release modda derlenmiş exe'ler için kullanın.

c# için bunu yapmanın yolu projedeki assemblyinfo.cs dosyasında şöyle bir değişiklik yapabilirsiniz;



#if(DEBUG)

[assembly: AssemblyVersion( "0.0.0" )]

[assembly: AssemblyFileVersion( "0.0.0" )]

#else

[assembly: AssemblyVersion( "2.3.0" )]

[assembly: AssemblyFileVersion( "2.3.0" )]

#endif

Böylece debug modda derlenen ve programcılara ait olan exe'ler her zaman 0.0.0 versiyonunda olacak tembel programcılarınızın mızmızlıklarını dinlemek zorunda kalmazsınız.

Versiyon numarasındaki son 0 hanesi için ufak bir tip olarak;

Güncel versiyonu sık olarak kullanan müşterilerimizde hergün derlenen otomatik build'ler için versiyon numarasındaki en son 0 hanesini yılın kaçıncı günü olduğuna göre ayarladık böylece, müşteriye verdiğimiz versiyonun ne güne ait olduğunu, eski mi yeni mi olduğunu anlayabiliyoruz.

No feedback yet

Leave a comment


Your email address will not be revealed on this site.
  
(For my next comment on this site)
(Allow users to contact me through a message form -- Your email will not be revealed!)
Text Renderers: