SVN Repository i Başka Sunucuya Taşıma

Merhabalar,

Bu yazımda SVN sunucumuzda bulunan repository i başka bir sunucuya nasıl aktaracağımdan bahsedeceğim. Aslında burda yapacağımız iş basit olarak yedek alma ve aldığımız yedeği başka sunucuda geri yükleme işidir.

  1. Repository inizin yedeğini alın.
  2. Yedek alma işlemini, svn in komutlarından “svnadmin” i kullanarak yapıyoruz. Aşağıdaki komutu kullanarak yedeğinizi alabilirsiniz.

    svnadmin dump /path/to/repository > repo_name.svn_dump
    

    Bu komut repository de bulunan tüm revizyonların da yedeğini alacaktır.

  3. Taşıyacağınız sunucuda aynı isimde bir repository oluşturun.
  4. Not: İlk önce taşıyacağınız sunucuya svn kurmanız gerekmektedir. Kurulum için buraya bakabilirsiniz.
    Aşağıdaki komutu çalıştırarak yeni bir repository oluşturabilirsiniz.

    svnadmin create /path/to/repository
    
  5. Almış olduğunuz yedeği Yeni sunucudaki boş repository e geri yükleyin.
  6. Almış olduğumuz yedeği yeni sunucuya taşıyoruz ve aşağıdaki komutu çalıştırıyoruz.

    svnadmin load /path/to/repository < repo_name.svn_dump
    

Artık repository miz yeni sunucuda aynı özelliklerle ve içeriklerle çalışmaktadır.

Oracle Enterprise Linux e SVN Sunucu Kurulumu

Merhabalar,

Bu yazımda Oracle Enterprise Linux e SubVersioN (SVN) kurulumunu anlatacağım. SVN, bir grup insanın aynı proje üzerinde ortak çalışmasını sağlayan ve geliştirdikleri kodları ortak bir makinede tutarak birbirleriyle çakışmasını önleyen, kodların başka kullanıcılar tarafından ezilmesini önleyen ve geçmişe dönük olarak kodları tutabilen bir uygulamadır.
Şimdi kuruluma başlayabiliriz:

  • RHEL tabanlı bir işletim sisteminde öncelikle SVN için gerekli olan paketleri kurun.
  • # yum install httpd mod_dav_svn subversion
    
  • SVN repository oluşturmak için aşağıdaki komutları çalıştırıyoruz:
    # mkdir /var/www/svn/
    # cd /var/www/svn/
    # svnadmin create testRepo
    
  • Bu repository i apache kullanıcısına atıyoruz.
  • # chown -R apache:apache testRepo
    
  • SVN konfigurasyon dosyasında bazı tanımlamalar yapmamız gerekiyor.
    /etc/httpd/conf.d/subversion.conf dosyasına aşağıdaki bilgileri girin.
  • # vi /etc/httpd/conf.d/subversion.conf
    
       DAV svn
       SVNParentPath /var/www/svn  
       AuthType Basic
       AuthName "Subversion repositories"
       AuthUserFile /etc/httpd/conf.d/svn.users 
       AuthzSVNAccessFile /var/www/svn/testRepo/conf/authz 
       Require valid-user
    
    

    Yukarıdaki dosyada bulunan,
    SVNParentPath parametresi svn repository lerinin kurulacağı klasörü gösteriyor.
    AuthUserFile parametresi ise svn repository sine erişecek olan kullanıcıların kayıt edileceği dosyayı gösteriyor.
    AuthzSVNAccessFile dosyası ise kayıtlı kullanıcıların repository olan yetkilendirilmesini yapıyor.

  • Repository erişecek kullanıcıları aşağıdaki kod ile oluşturuyoruz.
    Eğer parola dosyası yoksa “htpasswd -cm” parametresiyle çalıştırıyoruz.
  • # htpasswd -cm /etc/httpd/conf.d/svn.users oracle
    New password:
    Re-type new password:
    Adding password for user oracle
    
  • Eğer mevcut kullanıcıyı güncellemek istiyorsak ya da yeni kullanıcı ekleyeceksek “htpasswd -m” parametresiyle çalıştırıyoruz.
  • htpasswd -m /etc/httpd/conf.d/svn.users oracle2
    New password:
    Re-type new password:
    Adding password for user oracle2
    
  • Konfigurasyon dosyasında belirttiğimiz kullanıcı listesi dosyasını sorguladığımızda eklediğimiz kullanıcıları görebiliriz.
  • # cat /etc/httpd/conf.d/svn.users
    oracle:$apr1$9t19J…$hCF2GJTlizZfnPjKyk9rk/
    
  • Repository erişecek kullanıcıların yetkilendirilmesi için aşağıdaki kodu çalıştırıyoruz:
  • # vi /var/www/svn/testRepo/conf/authz
    ## grup oluşturmak için
    ## group_adi = kullanici_adi
    [groups]
    developer = oracle
    other = onur.cinar
    
    ##repository ye tanımlı kullanıcılara yetki vermek için
    ## [repository_adi/ repository klasörü]
    ## kullanıcı ya da group adı = (r,rw) yetkilerinden biri
    ## r = read, rw = read – write
    
    [/]
    @other = r
    @developer = rw
    
  • Httpd servisini restart edip, başlangıçta çalışması için chkconfig e yazıyoruz.
  • # /etc/init.d/httpd restart
    # chkconfig httpd on
    

SVN sunucumuz hazırdır. Kendi locallerinizde olan SVN clientlarla sunucuya bağlanabilirsiniz.