4

我们有一些自定义的 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)

有没有人见过类似的东西?

4

2 回答 2

7

这里的问题是 fork 失败:Subversion 正在尝试 fork 一个新进程,而 Windows 正在加载具有意外内存布局的新进程。这是 Cygwin 试图解决的基本问题之一:Linux 程序期望在生成新进程时,新进程将具有与旧进程相同的内存布局;每当启动新进程时,Windows 都会主动更改内存布局。

记录在案的解决方案在 Cygwin FAQ中。

简短的版本是您需要执行以下操作:

  • 退出所有 Cygwin 进程。这意味着关闭所有 MinTTY 窗口,退出正在运行的任何 X 服务器等。检查任务管理器。
  • 转到开始 > 运行(或点击Win+ R),然后运行C:\cygwin\bin\dash​​.
  • 在出现的窗口中,键入/bin/rebaseall并点击Return
  • 去给自己泡杯咖啡。

如您所述,重新安装也可以;那是因为重新安装将在后台运行有限的 Cygwin rebase。

于 2013-03-26T21:13:57.900 回答
1

重新安装颠覆解决了这个问题。

于 2013-03-25T16:54:40.537 回答