我正在尝试实现一些钩子,但是前后都失败了。当我尝试提交时,我收到相同的错误消息:
'*-commit' 挂钩失败(没有完全退出:apr_exit_why_e 为 2,exitcode 为 -1073741515)。没有输出。
退出代码 -1073741515 看起来很奇怪,快速搜索一下 google-fu 让我明白了这一点:
被视为十六进制 DWORD,您看到的错误代码是 0xC0000135。
即 Sev=11, C=0, R=0, Facility=0, Code=0x0135。
值 0xC0000135 可以在 NtStatus.h 中找到,定义如下
//
// MessageId: STATUS_DLL_NOT_FOUND
//
// MessageText:
//
// {Unable To Locate Component}
// This application has failed to start because %hs was not found.
// Re-installing the application may fix this problem.
//
#define STATUS_DLL_NOT_FOUND ((NTSTATUS)0xC0000135L)
好吧,dll没找到,应该不会太难吧?我有一个带有 svn 的虚拟机,它对这些钩子很平静。所以我在两台机器上运行 Filemon.exe 和 Depends.exe。
我仍在苦苦浏览两台服务器的 filemon 日志,并且对于任何我认为被 Commit Hook 命中的可执行文件都没有给我任何独特的问题。
我决定快速浏览一下事件日志,哦,天哪!
'pre-commit' 挂钩失败(没有完全退出:apr_exit_why_e 为 2,exitcode 为 -1073741515)。没有输出。[409, #165001]
额外的信息,这个 [409, #165001] 遍布谷歌,但我并没有真正找到任何有用的东西。
该钩子显式调用具有三个参数的可执行文件。
C:\SubversionNotify\SubversionNotify.exe %1 %2 -pre
我什至也尝试过使用变量。
SET REPOS=%1
SET REV=%2
C:\SubversionNotify\SubversionNotify.exe %REPOS% %REV% -pre
查看 filemon 日志显示它永远不会进入 SubversionNotify.exe
它已经到了我不能花更多时间尝试实现这一点的地步,请帮助我,你是我唯一的希望。
服务器规格:
Windows XP,运行 VisualSVN 服务器,最新版本。
编辑:似乎 SubversionNotify 正在抛出异常,返回 Depends.exe 以检查哪些 dll 失败。
错误如下:
应用程序未能正确初始化 (0xc0000135)。
那个 0xC0000135 之前看到过,dll 狩猎啊!