2011-12-06 21 views
0

コミット後に私のウェブサイトを更新するポストコミットを試みました。Subversionポストコミットが呼び出されない

/svnUupdat/cProgrammeThatUpdate >> /log/test.log 

私は

env - ./post-commit 

は、それが動作することをしようとした場合[OK]を、今、ウェブサイトは最後のリビジョンにアップデートを取得する(とそこに続くよう/フック/コミット後

に私がやりましたログに何かがあります)

私はポストコミットがコミットされていない場合は??何か...それが動作をコミット..で何かがあれば、私は唯一のコミット後の

/bin/echo "post-commit run" >> /log/test.log 

に置けばこと(ログには何もありませんし、サイトが更新されません)

注意なぜ私のCプログラムを呼び出さないのですか?

EDIT 私はその代わりに、C言語プログラムの開発Iはスキップの/ var/WWWを持っているログに

/usr/bin/svn update /var/www/vhost/xx.com/site1/ >> /var/log/svn/example.log 

を呼び出すので、何か他のものを試してみました...

は、なぜそれがスキップされますか?私は、端末でのsvnアップデートを起動した場合には、作業ディレクトリを働く最後のリビジョンを取得

おかげ

答えて

1

は、「スキップ」というメッセージは、それが作業コピーではありませんので、Subversionはディレクトリを更新することができないことを示しています。ただし、これはディレクトリを手動で更新できるという声明と矛盾します。たぶんあなたのパスのどこかにタイプミスがありますか?

コミット後スクリプトは、コミットしているユーザーとして実行されることにも注意してください。これは、端末を使用しているときと同じユーザである場合と同じでない場合があります。コミットユーザーがポストコミットスクリプトを実行するための適切な権限を持っているかどうか、およびそのユーザーがあなたのスクリプトが何をしても実行する権限を持っているかどうかを確認する必要があります。

+0

こんにちは、実際に私のパスには(コミット後)のタイプミスがありました。コミット後にパスが正しいので、ログには何もないので、おそらく特権の問題です。コミットしているプロセスはhttpdで、その所有者はApacheです。私はすでにchownしていました。apache.apache post-commit自分の作業ディレクトリを同じにする必要がありますか? – Johny19

+0

作業ディレクトリを更新する予定があるので、書き込み権限が必要です。 'su - apache'(またはあなたのhttpdユーザが何であれ)を試して、あなたのポストコミットスクリプトを実行してください。ただし、httpデーモンのアクセス権を変更するときに何をしているのかは、セキュリティに影響を与える可能性があるため、注意する必要があります。代わりにあなたのレポにアクセスするために 'svn + ssh'を使用することを考えましたか? –

2

SVNがフックファイルを呼び出すと、環境変数が設定されていないかのようになります。したがって、フックファイルの先頭にPATH変数を手動で設定する必要があります。

関連する問題