21 Şubat 2013 Perşembe

subversion(svn) 1.6 sürümünden 1.7 sürümüne güncelleme

Burada Centos 6.X üzerinde subversion 1.6'dan 1.7 ye geçiş anlatılacaktır. Subversion sunucu tarafında 1.7 sürümü  ile 1.6 sürümü aynı repo formatını kullandığı için sadece subversion paketlerinin güncellenmesi yeterli olacaktır.

Fakat istemci tarafında yeni format kullanıldığı için istemci tarafındaki 1.6 sürümüne ait projenin 1.7 sürümüne güncellenmesi gerekir. Veya en güncel kodlar svn sunucusunda ise istemcideki mevcut 1.6 dizini silinip sunucudan sıfır bir svn checkout yapılması gerekir.



Öncelikle mevcut kurulu subversion versiyonunu bulmak için svn sunucusunda aşağıdaki komutlardan herhangi birini kullanabilirsiniz.

Mevcut sürümü öğrenme:


# rpm -qa |grep subver
subversion-1.6.11-7.el6.x86_64

# svn --version
svn, version 1.6.11 (r934486)
   compiled Jun 23 2012, 00:44:03


Subversion yazılımı ile subversion'daki bir projenin sürüm formatı aynı olmayabilir. Proje eski  sürüm subversion ile oluşturulmuş olabilir. svn'deki projemizin hangi subversion sürümü formatında olduğunu bulmak için projenin altındaki db/format dosyasına bakabilirsiniz.

Daha önceki dökümanımda örnek svn projeleri oluşturmuştum. Örnek surgate projesi için format dosyasına aşağıdaki değerler bulunmaktadır.

 # cat /var/svn/surgate/db/format
4
layout sharded 1000

Yukarıdaki birinci satırdaki sayı değeri bize projenin hangi subversion sürümü ile oluşturulduğunu  veya hangi sürüme kadar desteklendiğini gösterir.
Format numaraları ve farkları:

  Format 1: Subversion 1.1+ tarafından tanınıyor.
  Format 2: Subversion 1.4+ tarafından tanınıyor.
  Format 3:  Subversion 1.5+ tarafından tanınıyor.
  Format 4: Subversion 1.6+ tarafından tanınıyor.
  Format 5: Subversion 1.7-dev ve sonrası tarafından tanınıyor.
  Format 6: Subversion 1.8 tarafından tanınıyor.


Kurulu SVN paketlerinin listesi öğrenilmelidir. Bunun için aşağıdaki komut verilebilir.

# rpm -qa |egrep 'svn-|subversion-'
subversion-1.6.11-7.el6.x86_64
mod_dav_svn-1.6.11-7.el6.x86_64


Güncelleme yapmadan önce Apache servisini kapatmamız gerekir. Bu sayede güncelleme sırasında bir bağlantı isteğinin gelmeyeceğinden emin oluruz.

# /etc/init.d/httpd stop

Şu andaki en güncel sürüm 1.7.8. Aşağıdaki komutlarla yeni RPM paketleri çekilebilir.


# wget http://opensource.wandisco.com/rhel/6/svn-1.7/RPMS/x86_64/mod_dav_svn-
1.7.8-1.x86_64.rpm
# wget http://opensource.wandisco.com/rhel/6/svn-1.7/RPMS/x86_64/subversion-1.7.8-1.x86_64.rpm

Not: Yukarıdaki paketler 64 bit paketleridir. 32 bit işletim sistemi kullanıyorsanız yukarıdaki siteden 32 bit sürümlerini çekmeniz gerekir.

Paketler aşağıdaki komutla güncellenir.

# rpm -Uvh mod_dav_svn-1.7.8-1.x86_64.rpm subversion-1.7.8-1.x86_64.rpm
warning: mod_dav_svn-1.7.8-1.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 3bbf077a: NOKEY
Preparing...                ########################################### [100%]
   1:subversion             ########################################### [ 50%]
1q       2:mod_dav_svn            warning: /etc/httpd/conf.d/subversion.conf created as /etc/httpd/conf.d/subversion.conf.rpmnew ########################################### [100%]



Yeni paketin sürüm numarası kontrol edilir.

# svn --version
svn, version 1.7.8 (r1419691)
   compiled Dec 11 2012, 17:01:48


Herşey normal gözüküyor. Şimdi SVN erişimi için web sunucusunu tekrar açalım.

 # /etc/init.d/httpd start
 


Sunucu tarafındaki işlemler tamamlandı. İstemci tarafında ise svn çalışma dizinimize gidip aşağıdaki komutu verelim.
# cd /home/ismail/projects/surgate
# svn info
svn: E155036: Please see the 'svn upgrade' command
svn: E155036: Working copy '/home/ismail/projects/surgate' is too old (format 10, created by Subversion 1.6)


Gördüğünüz gibi işlemci tarafındaki veritaba formatımız eskide kaldı. Çıktıda belirtildiği gibi proje dizininde iken svn upgrade komutu vererek bu sorunu çözebiliriz.


# svn upgrade
Upgraded '.'


 Not: svn upgrade komutu sunucu tarafında kesinlikle bir operasyon yapmamaktadır. Sadece istemcideki yerel dizinin svn formatını güncellemektedir.

Diğer bir çözüm ise proje dizinini tamamen silin(tabii en güncel kodların svn sunucuda olduğundan emin olun.


 # cd /home/ismail/projects/surgate
# rm -fr surgate
# svn checkout https://192.168.1.10/svn/surgate/trunk surgate 




Hiç yorum yok:

Yorum Gönder