GIT versiyonlama sistemi üzerine yazılmış güzel bir yazı.
"However, I do contribute to quite a lot of them. One of the problems when you do not have write access to the original SCM repository, your patches and changes start getting outdated / conflicted / complicated and it becomes hard to keep up with the changes to the original SCM,
- of your patches, some go through as they are, some with some changes while some do not at all.
- the original repository is in continues change as well.
git Seems to tackle the issue. I have come across with Taki’s blog on CVS to GIT and back that explains how to address the problem in detail. Although the blog focuses on “CVS” it should be pretty easy apply the same for SVN and GIT (over GIT)."
Hasan Ceylan (http://tr.linkedin.com/in/hasanceylan) tarafından yazılan yazının devamı için buraya gidebilirsiniz.
Hizmetten faydalanabilmeniz için üye olmanız gerekiyor. Web sitesine girerek üyelik formunu doldurmalısınız. Ayrıca Sun Developer Network(SDN) hesabınız var ise buradaki email adresinizle hemen üye olabilirsiniz.
Üye olduktan sonra My Page bölümünden projelerinizi yönetebilirsiniz. En fazla 5 proje oluşturabiliyorsunuz.
Netbeans ile kullanımı ise şöyle;
Kenai project netbeans 6.7 sürümüden sonra entegre olarak gelmekte. Yeni bir proje oluşturmak için File menüsünden Open->Kenai project diyoruz. Açılan pencereden Create Project e basıyoruz.

Açılan pencerede resimde gördüğünüz gibi proje bilgilerini giriyoruz. Resimde gördüğünüz gibi proje isimleri sadece küçük karakterlerden oluşmalıdır.

Proje ismini küçük harflerle girdikten sonra next diyoruz gelen pencereden Netbeans üzerinde önceden oluşturduğunuz projeyi browse ile bulup gösteriyoruz. Bu bizim local depomuz oluyor. Sonra next diyoruz.

Finish dediğinizde girdiğiniz bilgilerle kenai de yeni bir proje oluşturulacak. Bir süre beklemeniz gerekli.


Bu ekranı gördüğünüzde projeniz başarı ile oluşturulmuş demektir. şimdi bu pencereyi kapatıp kod üzerinde düzenlemeler yapabiliriz.

Yaptığınız değişikliklerden sonra kenai sunucusundaki kod fakları renklendirme ile gösterilmektedir. Yapmak istediğiniz kısmi geri alımlarıda üzerlerine tıklayarak yapabilirsiniz.

Proje üstünde yaptığınız değişiklikleri kenai sunucusuna göndermek içinse proje ismine sağ tıklayıp Kenai->Versioning actions->Commit... e basıyoruz açılan pencerede hangi dosyalara ne değişiklikler yapılacağının ayrıntısını görebiliyoruz. Commit Message bölümüne bu commit ile ilgili detayları yazabilirsiniz.

İşlem bittikten sonra detaylar email adresinize gelecektir.
Büyük olsun yada küçük olsun tüm şirketlerde, şirket içerisindeki dökümanların akışının ve arşivlenmesinin kontrolü için kullanılan bir sistem vardır. Bu sistem bilgisayar ortamında çalışan bir programdan yada belgeleri raflarda arşivleyen ve belge akışını sağlayan kişilerden oluşabilir.
Bu amaçla kullanılan bilgisayar programlarına en çok yazılım şirketlerinde rastalanmaktadır. Çünkü yazılımcılar gün içinde sürekli kodlarda ufak değişiklikler yapmaktadırlar. Gerektiğinde dosyaları eski tarihteki versiyonlarına geri döndürmektedirler. Bunları yaparken diğer yazılımcıların etkilenmemesi gerekmektedir. İşte bu anda devreye giren bu programlar bir dosya üzerinde farklı kullanıcılar tarafından aynı anda yapılan değişikliklerin birbirini yok etmesini engeller.
Günümüzde yazılım şirketlerinde çoğunlukla CVS (Concurrent Versions System), Subversion ve MS SourceSafe sistemleri kullanılmaktadır. Özellikle CVS sistemi açık kaynak kodlu (Open Source) bir proje olduğu için açık kaynak kodlu olarak geliştirilen projelerde kullanılmaktadır. Bu tür projelere http://sourceforge.net/adresinden ulaşabilirsiniz.
2. Subversion Sistemi
2000 yılından önce Collabnet firması ( http://www.collab.net/) CVS'e alternatif bir versiyonlama sistemi geliştirmeye kararverir. İlk geliştirilen SourceCast sistemi temelde CVS sistemini kullanmaktaydı. Bu nedenle CVS sisteminde var olan kısıtlamalar bu yeni sistemde de görüldü. Bunun üzerine Collabnet firması tarafından CVS'den daha iyi bir sistem geliştirilmeye karar verildi.
14 aylık kodlama döneminden sonra geliştirilen Subversion sistemi 31 Ağustos 2001 tarihinde hizmet vermeye başladı. Açık kaynak kodlu (Open Source) olan Subversion sistemi ücretsiz olarak indirilebilir, kodlarında istenilen değişiklik yapılabilir.
3. Subversion Sisteminin Özellikleri
- Klasör Versiyonlama
- Atomik Güncelleme :
- Versiyon Bilgileri:
- Ağ Üzerinden Erişim
4. Subversion Kurulumu
Subversion sisteminin kurulumunu Windows işletim sistemi üzerinde gerçekleştireceğiz. Bunun için http://subversion.tigris.org/ adresi üzerinden svn paketini indirmeniz gerekmektedir. İlgili Windows Binary paketini istediğiniz dağıtıcıya göre indirebilirsiniz. İndirme işlemi bittikten sonra kurulum dosyasını çalıştıralım. Önümüzde kurulum adımlarını gösteren pencere çıkacaktır. Burada gerekli işlemleri yaptıktan ve Subversion sistemini kuracağımız dizini belirttikten sonra kurulum gerçekleşecektir. Kurulumu test etmek için “Command Prompt” da
| svn --version |
yazalım. Çalıştırdığımızda aşağıdaki gibi bir sonuç alırız.
Şekil – 1 : Subversion sistemi
Subversion sistemi çalıştığına göre kaynak kodların ve versiyonlama işlemi ile ilgili bilgilerin tutulacağı bir tane depo (repository) oluşturalım. Bunun için aşağıdaki gibi bir komut çalıştırmamız gerekiyor.
| svnadmin create c:repository |
Bu işlem sonrasında Şekil-2 deki gibi dizin yapısı oluşur.
Şimdi sıra var olan bir projeyi depoya (repository) eklemeye geldi. “C:TEMP” dizini altında file_1.txt , file_2.txt , file_3.txt ve file_4.txt dosyalarından oluşan “ project1” isimli projeyi depoya ekleyelim. Proje ekleme işlemleri için “ svn import “ komutu kullanılır.
| svn import --message " " c:tempproject1 file:///c:/repository/project1 |
Komut sonucunda aşağıdaki ekran karşımıza gelir.
Subversion
sistemi yeni oluşturulmuş bir depoya (repository) dosya ya da klasör
eklendiğinde değişiklik (revision) numarasını 1 yapar. Daha sonra
yapılacak olan değişiklikler sonucu değişiklik (revision) değeri
artacaktır. (Değişiklik değeri ile ilgili daha sonraki yazılarda
detaylı şekilde değinilecektir.) Subversion dosyalar üzerinde yapılmış
olan değişiklikleri değişiklik (revision) değerine göre kontol eder.
“Project1” isimli projenin depoya (repository) eklenip eklenmediğine bakalım.
| svnlook tree c:repository |
komutunu çalıştırdığımız zaman Şekil-4'de ki gibi depoya (repository) eklenenleri görebiliriz.
Şeklik - 4 : Depoda (repository) var olanların listesi
5. Apache HTTP Server'ının Kurulum
Subversion sisteminin Apache Server ile entegrasyonunu Apache Server'ın 2.0.49 versiyonunda gerçekleştireceğiz. Önce http://httpd.apache.org/download.cgisitesinden Windows işletim sistemi için ilgili Apache Server'ı indirelim. Kurulum programını çalıştırarak kurulumu gerçekleştirdikten sonra “...Apache GroupApache2conf” dizini altında bulunan httpd.conf dosyasında birkaç değişiklik yapmamız gerekiyor.
Httpd.conf dosyasında aşağıdaki satırın başındaki ‘ # ' işaretini kaldırarak satırı aktif yapalım.
#LoadModule dav_module modules/mod_dav.so
Bu satırdan sonra yeni bir satıra
LoadModule dav_svn_module modules/mod_dav_svn.so
ekleyelim.
Şimdi Subversion sistemini kurduğumuz dizindeki “httpd” klasörü içerisindeki “mod_dav_svn.so” dosyasını “...Apache GroupApache2modules” dizinine kopyalayalım.
“ httpd.conf ” dosyasısının en sonuna
| DAV svn SVNPath c:/repository/
|
tanımlamasını yapalım ve dosyayı kaydedelim.
Apache Server'ını başlattıktan sonra bir web görüntüleyicisinde (web browser) http://sunucu_ismi/repositorybağlantısını yazdığımızda Şekil-5 teki gibi depoya (repository) eklenenleri dizin yapısı şeklinde görüntüler.
Subversion sistemi ile Apache Http sunucusunu entegrasyonunu gerçekleştirdik.
6. Projeyi Kullanıcı Makinasına İndirmek
Depodaki bir projeye dahil olmak için önce bu projenin kullanıcı makinasına depodan çekilmesi gerekiyor. Bunun için “ svn checkout ... ” komutu kullanılır. Bu işlemi http üzerinden gerçekleştirmek için aşağıdaki komutu çalıştıralım.
| svn checkout http://localhost/repository/project1 c:pro_1 |
Burada “ http://localhost/repository/project1“ adresindeki dosya ve dizin yapısını “ c:pro_1 ” altına kopyalar.
Buradaki A harfleri ilgili dosyanın eklendiğini göstermektedir.
Dizin yapısı Şekil-7 deki gibidir.
Şekil-7 Kullanıcı makinada oluşan dizin yapısı
Projeyi kopyaladığımızda otomatik olarak “ .svn ”
klasörü oluşur. Bu klasör içerisinde her değişiklik (revision)
numarasına ait değişiklikler bulunmaktadır. Ayrıca kullanıcının yaptığı
yerel değişiklikler burada saklanmaktadır. Kullanıcı bilgisayar ağına
bağlı olmadığı zamanlar yaptığı değişiklikleri, bilgisayar ağına
bağlandığında depoya (repository) yükleyebilir. Bu esnada gerekli tüm
bilgiler “.svn” içerisinden alınmaktadır.
Taner Diler
taner.diler[et]gmail.com