
OSCON : Subversion Best PracticesではWebサイトのsvn updateはpost-commitフックで自動的にやろうといわれています。
私もそれに倣って以下のコードをpost-commitに書いてみたのですが、何度やってもうまくいきませんでした。post-commitフックスクリプト自体は動作しているのですが...。
/usr/local/bin/svn up /path/to/working/directory >> /tmp/svnupdate.log &
そこで同じ境遇の人がいないか探してみたところ、見つけました。
SubversionによるPHP開発環境バージョン管理話 2006.10.03-[Id of Radiance]より。
ところがpost-commitを直接コマンド叩くとどちらの更新も成功するのでワケわからん。シェル内に「whoami」書いて権限調べたりもしたのだが、コミット連動、コマンド直叩きどちらも当然のよーに「root」で動作してる。もーわけわからんナリよキテレツ!
で、コレの対処をどうしたかというと、「svn update /DocumentRoot/*」と言う風に、本来フォルダ指定だけでいけるところをわざわざワイルドカードで中身全指定したら一応は更新されるようになった。
私の環境でもこれで解決。なんとか自動更新されるようになりました。
/usr/local/bin/svn up /path/to/working/directory/* >> /tmp/svnupdate.log &
同記事中では『Windows側(TortoiseSVN側)でファイルを追加→コミットした場合に、post-commitでのupdateで新規ファイルが出力されない状況も発生中』とありますが、私は運良くこの状況には陥っていません。
以下に動作環境を記しておきます。
- レポジトリ (FreeBSD)
- FreeBSD 5.4-Release
- svn, version 1.4.0 (r21228) from ports
- クライアント (FreeBSD)
- FreeBSD 5.4-Release
- svn, version 1.4.0 (r21228) from ports
- クライアント (Windows)
- Windows XP Professional sp2
- TortoiseSVN 1.4.1, Build 7882 - 32bit 2006/11/11 09:34:39




投稿