我编写了一个Perl 提交后挂钩Net::SMTP
,它通过 Perl模块发送电子邮件。尝试提交时出现以下错误:
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 钩子时我会得到它?