我们有一些自定义的subversion pre和post提交挂钩,可以在我们的生产服务器上正常工作.
对于开发人员测试,我使用的是cywgin.直到最近,提交钩子也正常工作.
但是,在运行cygwin更新后,钩子现在失败了(为了清晰起见,添加了换行符):
0 [main] svn 14820 child_info_fork::abort:
C:\cygwin\bin\cygcrypto-1.0.0.dll: Loaded to different address:
parent(0x440000) != child(0x590000)
Run Code Online (Sandbox Code Playgroud)
有没有人见过类似的东西?
这里的问题是fork失败:Subversion正在尝试派生一个新进程,而Windows正在使用意外的内存布局加载新进程.这是Cygwin试图解决的基本问题之一:Linux程序期望在生成新进程时,新进程将具有与旧进程相同的内存布局; 每当启动新进程时,Windows都会主动更改内存布局.
简短版本是您需要执行以下操作:
C:\cygwin\bin\dash
./bin/rebaseall
并按下Return.如您所述,重新安装也会起作用; 这是因为重新安装将在后台运行有限的Cygwin rebase.