コミット時にSubversionが現在の作業コピーを自動的にデプロイするようにしようとしています。
たとえば、誰かが「public_html」リポジトリをチェックアウトしてから変更をコミットした場合、svn を実行しているサーバーで「svn update /path/to/public_html/」を自動的に実行するには、SVN が必要です。
以下を呼び出すコミット後のフックを設定しました。
/usr/bin/svn update /path/to/public_html/
post-commit フックが実行可能であることを確認しました。SSH 経由でスクリプトを手動で実行すると、適切に実行され、/path/to/public_html/ ディレクトリが更新されるため、post-commit スクリプトが正常に動作することがわかります。
私が遭遇している問題は、コミットするたびに次のエラーが発生することです。
Transmitting file data .svn: Commit failed (details follow):
svn: MERGE of '/svn/public_html': 200 OK (http://ourdomain.com)
つまり、SVN は完全に横たわっています。コミットは実際には失敗しません。ディレクトリを手動で更新すると (またはコミット後のスクリプトを手動で実行すると)、更新が完了し、変更がサーバーに反映されます。
それで、ポストコミットフックが失敗する理由を誰か知っていますか?
この件に関するかなりの数の投稿を見てきましたが、私が試した「ポストコミットスクリプトを手動で実行してみてください」以外に解決策があるようには見えません。問題は、SVN自体の問題のようです。
どんな助けでも大歓迎です!!