Carpe Diem

  Top > スポンサー広告> Subversion > SVNとWebを同期  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

SVNとWebを同期

2011 - 11/10 [Thu] - 22:48

仕組みはシンプルで、Web側でチェックアウト→コミット時にpost-commitというスクリプトを走らせてWebのフォルダでsvn upさせます。

①Webフォルダでチェックアウト
前回のやり方と同じです。Webで使用するフォルダを仮にWeb/とします。今回もレポジトリは/home/username/svn/testとします。

$ svn checkout file:///home/username/svn/test ~/Web

②コミット時にpost-commitというスクリプトを走らせる。
レポジトリにpost-commit.tmplというテンプレートが入っているのでそれを利用します。余談ですがプログラム更新時のメール通知等もこれを利用します。

$ cd svn/test/hooks/
$ cp post-commit.tmpl post-commit


実行権限をつけます。
$ chmod 755 post-commit

もし所有者がrootだとパーミッションエラーをくらうので、その場合はchownで修正してください。

中身を次のように書き換えます。

$ emacs -nw post-commit
#!/bin/sh

REPOS="$1"
REV="$2"

export LANG=ja_JP.UTF-8

POSROOT=/home/username/Web
svn update $POSROOT &


POSROOTはWebフォルダの位置です。注意として、Webフォルダに日本語ファイルがあるとエラーが起きる(コミット時にexit code 1が出ます。ちなみに実行権限がないとexit code 255です)ので、上記のようにexport LANG=ja_JP.UTF-8が必要になります。

以上です。


ソース:
コミット後、自動的にウェブサーバに反映させる
[linux] CentOS5 + Apache2にsubversionを導入

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice
備忘録

検索フォーム

カテゴリ

最新記事

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。