Subversion, Tigris.org (Açık Kaynak Yazılım Mühendisliği Araçları) sitesinde yayınlanarak CollabNet şirketi tarafından da desteklenen bir uygulamadır. Kısaca SVN olarak adlandırılır. Sürüm yönetim sistemi olan subversion, dosyalarınızı ortak bir noktada tutup kolayca sürüm yönetimini yapmanıza olanak sağlar. Bu sayede svn’de bulunan dosyalarınızın sürümlerini takip edebilir, istediğiniz zaman daha önceki sürümlere dönebilir, hangi dosyaların kimler tarafından değiştirildiğini rahatlıkla görebilirsiniz.

1-Kurulum Hakkında Ön Bilgi

-Subversion kurulumu Ubuntu 12.04 LTS sürümü üzerinde gerçekleştirilecektir.
-Kurulan subversion sürümü 1.6.17 ‘dir.
-Subversion sunucusu svn, web ve ssh protokolleri üzerinden kullanılabilmektedir. Bu makalede subversion svn protokolü ile erişim sağlanabilecek şekilde yapılandırılacaktır.
-Birden fazla repo oluşturulacak ve repoların yönetimleri hakkında bilgi verilecektir.
-Kurulum sırasında “vi” metin editörü kullanılacaktır. Dilerseniz farklı bir metin editörü kullanabilirsiniz. Bundan dolayı “vi” metin editörünün farklı olan yazma,kaydetme gibi işlemleri anlatılmamıştır.

2-Subversion Kurulumu

NOT : Kurulum aşamasındaki tüm komutları root yetkisine sahip bir kullanıcı ile çalıştırmanız gerekmektedir.

– #apt-get install subversion komutu ile kurulumu gerçekleştiriniz.

subversion (1)

– #svn ––version komutu ile kurulumunu tamamladığınız subversion sürümünüzü görebilirsiniz.

subversion (2)

– #mkdir /home/repos komutu ile home dizini altında repos adında bir dizin oluşturup repositorilerinizi bu dizin altında toplayabilirsiniz. Dilerseniz repolarınızı farklı bir dizinde de tutabilirsiniz.

subversion (3)

– #svnadmin create /home/repos/proje1
#svnadmin create /home/repos/proje2
Komutları ile “proje1” ve “proje2” adında iki adet repoyu oluşturunuz.

subversion (4)

– #chmod –R g+rws /home/repos [komutu ile repos dizinini.]
#groupadd svn [komutu ile svn adında grup oluşturunuz.]
#chgrp –R svn /home/repos [komutu ile repos dizininin grubunu “svn” olarak değiştiriniz.]
#usermod –a –G svn root [svn grubuna root kullanıcısını ekleyiniz.]

subversion (5)

– #mkdir /tmp/projem [komutu ile tmp dizini altında projem adında bir dizin oluşturunuz]
#cd /tmp/projem [komutu ile oluşturduğunuz projem dizinine geçiniz.]
#mkdir trunk branches tags trunk/proje1 [komutu ile trunk, branches, tags ve trunk altında proje1 dizinlerini oluşturunuz.]
Oluşturduğunuz trunk, branches, tags dizinleri;
Trunk: Projenin geliştirme aşamasında iken dosyalarının tutulacağı dizin.
Branches: Proje alt dalları burada tutulabilir. Örn. Farklı dil, versiyon
Tags: Adındanda anlaşılacağı gibi tag’lerinizi bu dizine alabilirsiniz.

subversion (6)

– #svn import /tmp/projem/ file:///home/repos/proje1 -m “Default Folder” komutu ile oluşturduğunuz dosyaları svn’e import ediniz.

subversion (7)

– #vi /home/repos/users-passwd komutu ile “users-passwd” dosyasını oluşturunuz ve içerisine [users] başlığı altında svn repolarınıza erişim sağlayacak kullanıcı adı ve parola bilgilerini yazınız.

subversion (8)

– #chmod 600 /home/repos/users-passwd komutu ile kullanıcı bilgilerinizin bulunduğu users-passwd dosyasının erişimini diğer kullanıcıların görmesini kısıtlayınız.

subversion (9)

– #cp -v /home/repos/proje1/conf/svnserve.conf /home/repos/ komutu ile oluşturduğunuz tüm projelerin conf dizininde otomatik olarak oluşan svnserve.conf dosyasının bir örneğini global hale getirmek için kopyalayınız.

subversion (10)

– #vi /home/repos/svnserve.conf komutu ile svnserve.conf dosyasını açarak aşağıdaki satırları şekilde olduğu gibi düzenleyiniz;
anon-access = none [anon kullanıcıların girişini kısıtlamak için “none” değerini veriniz.]
auth-access = write [parolalı giriş yapılması için.]
password-db = /home/svn/users/passwd [parolaların hangi dizinde bulunduğunu belirtiniz.]
authz-db = authz [reponuz altında bulunan dosya veya dizinlere özel erişim kısıtlaması getirmek için dosya yolunu belirtiniz. Ön tanımlı olarak authz dosyası atanmıştır. İlerleyen adımlarda authz dosya içeriği düzenlemesi yapılacaktır.]
realm = SVN REPO’s [svn adını yazınız.]

subversion (11)

– #mv -v /home/repos/proje1/conf/svnserve.conf /home/repos/proje1/conf/svnserve.conf.BAK
#mv -v /home/repos/proje2/conf/svnserve.conf /home/repos/proje2/conf/svnserve.conf.BAK
Komutları ile her ihtimale karşı default svnserve.conf dosyalarınızı yedekleyiniz.

subversion (12)

– #ln -s /home/repos/svnserve.conf /home/repos/proje1/conf/svnserve.conf
#ln -s /home/repos/svnserve.conf /home/repos/proje2/conf/svnserve.conf
Komutları ile global olarak belirlediğimiz svnserve.conf dosyasını oluşturduğumuz proje1 ve proje2 reposu altında link olarak oluşturunuz.

subversion (13)

– #vi /etc/init.d/svnserve komutu ile svnserve adında servis oluşmak için bir dosya oluşturunuz. Dosya içeriğine aşağıdaki kod parçacığını yazınız.

#! /bin/sh
#
# svnserve {start|stop|restart|force-reload} script
#
# @author Musab Yardım
# @version 01.00
# @date 16.06.2014
#

# set repositories path
REPOS=/home/repos

# set svnserve daemon
DAEMON=/usr/bin/svnserve

# configuration settings
PATH=/sbin:/bin:/usr/sbin:/usr/bin
SVN=svnserve
SVN_DESC=”Subversion Server Daemon ($SVN)”

case “$1” in
start)
echo “Starting $SVN_DESC…”
start-stop-daemon –start –quiet –oknodo –exec $DAEMON — -d -r $REPOS >/dev/null 2>&1
echo
;;
stop)
echo “Stopping $SVN_DESC…”
start-stop-daemon –stop –quiet –oknodo –exec $DAEMON
echo
;;
restart|force-reload)
$0 stop
sleep 1
$0 start
;;
*)
echo “Usage: $0 {start|stop|restart|force-reload}”
echo
exit 1
;;
esac

exit 0

subversion (14)

– #chmod +x /etc/init.d/svnserve komutu ile oluşturduğunuz servisin çalıştırılabilir olmasını sağlayınız.

subversion (15)

– #update-rc.d svnserve defaults komutu ile sistem açıldığında svn servisinin otomatik olarak başlamasını sağlayınız.

subversion (16)

– #vi /home/repos/proje1/conf/authz komutu ile proje1 için erişim ayarlarını yapınız. Aşağıdaki örnekte “hepsi”, “admin”, “yazilim”, “donanim” olmak üzere 4 farklı grup oluşturulmuştur. Bu gruplardan;
Hepsi Grubu: Kök dizine erişim sağlabilecek
Yazilim Grubu: Yazilim dizininze erişim sağlayabilecek
Donanim Grubu: Donanim dizinine erişim sağlayabilecek
şeklikde ayarlanmıştır.

subversion (18)

3-Subversion Repolarına Erişim

Oluşturduğunuz repolara erişim komut satırından olabileceği gibi svn istemci uygulamaları ile grafik arayüzünden daha kolayca gerçekleştirebilirsiniz. TortoiseSVN oldukça gelişmiş ve popüler bir svn erişim aracıdır. TortoiseSVN’i indirip bilgisayarınıza kurduktan sonra aşağıdaki adımları takip ederek oluşturduğunuz repolara erişim sağlayabilirsiniz.
– SVN reponuzu bilgisayarınıza çekmek için çekmek boş bir ekranda sağa tıklayıp “SVN Checkout” menüsüne tıklayınız.
-Açılan ekranda aşağıdaki şekilde gördüğünüz gibi repository erişim adresinizi ve dosyalarınızın çekileceği dizini belirtiniz.

subversion (19)

-Erişim için kullanıcı adı ve parolanızı yazınız.

subversion (20)

-Reponuzda bulunan dosyalar belirttiğiniz dizine otomatik olarak indirilecektir.

subversion (21)

-Aynı işlemleri proje2 içinde gerçekleştirdiğinizde simgeler aşağıdaki gibi “yeşil tik” şeklini alacaktır.

subversion (22)

-TortoiseSVN uygulamasının kolay arayüzü sayesinde svn reponuz üzerinde daha birçok işlemi gerçekleştirebilirsiniz.

-TortoiseSVN hakkında detaylı bilgiye şu dökümandan ulaşabilirsiniz.

 

Kaynaklar:

[http://subversion.apache.org/]

[http://www.shayanderson.com/]

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Time limit is exhausted. Please reload CAPTCHA.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Post Navigation