我已經編寫了一個Perl post-commit hook,它通過Perl Net::SMTP
模塊發送電子郵件。我得到以下錯誤,當我嘗試做一個承諾:SVN提交後腳本失敗並導致工作副本更新問題
Sending subversion/README
Transmitting file data .svn: Commit failed (details follow):
svn: MERGE of '/mfxcm/trunk/subversion': 200 OK (http://source)
提交實際工作過,但沒有更新我的工作拷貝 修訂,直到我做了一個「SVN起來」:
$ 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)
[email protected]:~/workspace/svn-cm-trunk/subversion
$ svn up
G README
Updated to revision 94.
我玩過我的post-commit腳本。首先,我寫了一個簡單的例子,只是打印出一個簡單的文本信息,以確保工作正常。然後,我在不同的時間使用我的並退出以查看MERGE
問題的來源。
我在我的腳本,我創建了一個新的網絡點:: 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鉤子時會得到它?
我已經將問題追溯到Net :: SMTP,它嘗試'$ obj-> response()== CMD_OK'。出於某種原因,在這一點上有些事情正在崩潰。 SMTP.pm是最新版本,Net :: Cmd也是如此。 –