SVN最新版取得のシェル

svnでコミットしたら自動的に公開サーバー側をupdateしてくれるpostcommitが上手く動かなかったので、暫定でsvnから最新バージョンにupdateするシェルで対応してみた。意外と使えたのでメモ。公開するサーバーにSVNが入ってる時しか使えないけど・・・

ここではsvnのTESTSystem/trunkで、(DocumentRootのpath)/TESTSystemを更新する

  1. 更新したいディレクトリの直下にシェルを作成(ここではupdate.sh)
    #!/bin/sh
    rm -rf /var/www/html/TESTSystem/(path)/cache/* ←※1
    svn checkout file://(svnのpath)/TESTSystem/trunk (DocumentRootのpath)/TestSystem/ ←※2
    chown -R apache:apache (DocumentRootのpath)/TESTSystem/* ←※3

    ※1update時にキャッシュなどを削除したければ、checkoutの前にこんなコードを付け加える。

  2. ※2svnからチェックアウト(最新版の取得)してきているだけ

    ※3とりあえず、apacheユーザーに変更しておいた

  3. ルート権限でシェルを叩けばupdate完了
    [root@localhost /]$sh /var/www/html/TestSystem/update.sh