SVN ile Dosyalara Keywords Eklemek
Daha önce SVN ile ilgili bir yazı yayınlamıştım. Onu kaçıranlar için bu blogda da svn ile ilgili bir yazı yayınlamayı düşünüyorum. Eğer henüz bir SCM aracı kullanmıyorsanız kesinlikle SVN tavsiye ediyorum. SCM nedir, SVN‘in özellikleri nelerdir, nasıl kullanılır gibi temel konulara daha sonra değinmek üzere erteleyerek bu yazıda benim için önemli olan bir konuya değinmek istiyorum.
SVN ile kodlarımızı yazdığımız dosyalara keyword‘ler ekleyebiliyoruz. Ben ve yol arkadaşım metalsimyaci bir süre önce KabileOnline 3.0 için çalışmalarımıza başladık. Ayrı illerde yaşadığımız için geliştirme ortamının ve altyapının düzgün bir biçimde oluşturulması önemliydi. Bunun için kodlarımızı SVN server üzerinde tutmaya karar verdik. Proje üzerinde kendimize tasklar, bug kayıtları, geliştirme önerileri gibi issue‘lar oluşturabileceğimiz ve bunlara birbirimizi atayarak commentler yazabileceğimiz bir ortam da oluşturduk. Yavaş yavaş kod yazmaya başlıyoruz. Bu noktada kodlarımızı yazdığımız ve SVN‘e eklediğimiz dosyalarda bir standart belirleme ihtiyacı doğdu. Bu her projede olması gereken birşey olduğu için buraya yazıyorum.
Öncelikle SVN üzerine eklenecek dosyanın yapısını standartlaştırdık. Bunun için dosya içerisine şunlar eklenecek;
/** * This is the decription for deneme.php file. * * #$URL$ * #$Date$ * #$Author$ * #$Revision$ */ // ------------------------------------------- class Deneme { public function index() { echo "Hello World"; } } /* End of file deneme.php */
Burada anlatacağım nokta en üstte bulunan açıklama bölümü içerisindeki metadatalar. Bunlar SVN anahtar kelimeleri. #$keyword$ şeklinde yazılıyorlar ve SVN commit sırasında otomatik olarak populate ediliyorlar. Her commit sırasında da otomatik olarak güncelleniyorlar. Aşağıda güncellenmiş halini görebilirsiniz.
/** * This is the decription for deneme.php file. * * #$URL: https://kabileonline.com/.../deneme.php $ * #$Date: 2012-11-05 14:20:27 +0200 (Pzt, 05 Kas 2012) $ * #$Author: akjmgalp@gmail.com $ * #$Revision: 19 $ */ //------------------------------------------- class Deneme { public function index() { echo "Hello World, How Are You?"; } } /* End of file deneme.php */
Bunu yapabilmek için küçük bir ayarlama yapmanız gerekiyor. Ben Tortoise SVN kullandığım için onun üzerinden anlatacağım. Fakat console‘dan da kolaylıkla yapılabilir. Oluşturduğunuz dosyayı SVN‘e eklemek için dosyaya sağ tıkladıktan sonra TortoiseSVN->Add tıklıyoruz. Dosyanın kenarında SVN‘e eklenmeye hazır olduğunu gösteren küçük mavi bir + işareti çıkıyor. Daha sonra tekrar dosyaya sağ tıklayıp TortoiseSVN->Properties tıklıyoruz. Açılan pencerede sağ alttan New butonuna tıklıyoruz ve Keywords seçiyoruz. Gelen listeden Author, Date, Revision ve URL seçiyoruz (Header dosyayı checkout etmek için gereken svn komutunu, ID ise diğer tüm keywordleri içerir). OK diyerek kapatıyoruz ve normal şekilde sağ tıklayarak SVN Commit diyoruz ve yüklüyoruz. Bundan sonra dosya içerisinde metadatalar otomatik oluşuyor ve güncelleniyor.
Konsol veya terminal üzerinden SVN kullanan arkadaşlar ise aşağıdaki komut ile dosyalarına keyword ekleyebilirler.
svn propset svn:keywords 'Author Date Revision' deneme.php property 'svn:keywords' set on 'deneme.php'
SVN kullanıyorsanız kesinlikle keywords kullanmanızı öneririm. Standartlar olmadan kod yazmak, sadece karalamaktır.