Perlモジュールを介して電子メールを送信するPerlのコミット後フックを作成しました。Net::SMTP
コミットしようとすると、次のエラーが発生しました。
Sending subversion/README
Transmitting file data .svn: Commit failed (details follow):
svn: MERGE of '/mfxcm/trunk/subversion': 200 OK (http://source)
コミットは実際には機能していましたが、「svn up」を実行するまで、作業コピーのリビジョンは更新されませんでした。
$ svn commit -m"Finding what's causing commit errors. I think it's the post-commit script"
Sending subversion/README
Transmitting file data .svn: Commit failed (details follow):
svn: MERGE of '/mfxcm/trunk/subversion': 200 OK (http://source)
david@DaveBook.local:~/workspace/svn-cm-trunk/subversion
$ svn up
G README
Updated to revision 94.
コミット後のスクリプトをいじってみました。最初に、物事が機能することを確認するために、単純なテキストメッセージを出力する単純なものを作成しました。それから、私は私のものを使用し、MERGE
問題がどこから来ているのかを確認するためにさまざまな時間に終了しました。
スクリプトの中で、新しいNet::SMTPオブジェクトを作成するポイントに到達しました。
if ($smtpUser) {
$smtp->auth( $self->SmtpUser, $self->SmtpPassword)
or croak qq(Unable to connect to mailhost "@{[$self->SmtpHost]}")
. qq( as user "@{[$self->SmtpUser]}");
}
スクリプトでこの行を有効にすると、MERGE
問題が発生します。それ以外の場合、スクリプト全体がほぼ期待どおりに実行されます。
コマンドラインからスクリプトを実行することもでき、すべてが正常に機能します。コミット後のフックとしてトリガーされた場合にのみ、問題が発生します。Apacheとしてログインし、問題なくスクリプトを実行しました。
そのMERGEエラーはどういう意味ですか、そしてSubversionがpost-commitフックを実行するときになぜそれを取得するのですか?