31 Mart 2009 Salı

Subversion (SVN) Post Commit hooks and Shadow Copy

ASP, PHP gibi scripting dillerinde program yazan yazılım ekipleri subversion sistemini versiyon kontrol amaçlı kullanmak isterse, server tarafında kullandıkları repository nin bir shadow copy sini yaratmaları gerekmektedir. Svn repository sini IIS - Apache server lara web root olarak gösteremiyoruz çünkü svn özel bir formatta dosyaları tutuyor.

Bunun için svn sistemini yazanlar, bazı eventlara çalıştırılabilir scriptler bağlayabilmemize olanak vermişler. Bunlardan biride post-commit eventıdır.

Bizim problemimizde post-commit olduğu esnada shadow copy yapmak istediğimiz folder a yaptığımız değişikliklerin aktarılmasını ve bunu aynı anda test sayfalarında görebilmeyi istiyoruz.
Bunu yapabilmek için öncelikle post-commit için bir script yazmalıyız. Bu scripti herhangi bir dilde yazabiliriz fakat windows ortamında 2 seçeneğimiz var. Ya "exe" yada "bat" yapabiliriz. "bat" dosyası yapar isek, içine yazacağımız komut ile bir başka "perl" veya "pyhton" scriptini çalıştırabiliriz.

Asıl sorun hangi repositorynin shadow copy sinin yapıldığını, hangilerinde bu özellik olmadığını görmekte, çünkü ilerki zamanlarda hangi repository e hangi ayarı yaptığımızı unutabiliriz.
Bu dertlerden dolayı bende ufak bir C#.net uygulaması yaptım ve şu an kendi ekibimizde kullanıyoruz.

Uygulama ile ilgili bilgiler codeproject teki yazımda bulunmaktadır.
SVN_Post-Commit_Organizer

Hiç yorum yok:

Yorum Gönder