git svn - cygwin下的错误

git svn  -  cygwin下的错误

问题描述:

我有cygwin和git。我试图提交与git到svn - git svn dcommit 。但是它失败了奇怪的错误:

I have cygwin and git. I'm trying to commit with git to svn - git svn dcommit. But it fails with strange error:


$ git svn dcommit
      4 [main] perl 5536 C:\cygwin\bin\perl.exe: *** fatal error - unable to remap \\?\C:\cygwin\lib\perl5\5.10\i686-cygwin\auto\List\Util\Util.dll to same address as parent: 0xA20000 != 0xB40000
Stack trace:
Frame     Function  Args
0088B508  6102749B  (0088B508, 00000000, 00000000, 00000000)
0088B7F8  6102749B  (61177B80, 00008000, 00000000, 61179977)
0088C828  61004AFB  (611A136C, 6125AB3C, 00A20000, 00B40000)
End of stack trace

我如何解决它?感谢。

PS
我的系统是windows 7 64位。

P.S. My system is windows 7 64 bit.

更新

reabase 但是我在执行rebase之后必须重新启动。

reabase helped. but I had to reboot after executing rebase.

您尝试 rebaseall ,例如此处描述


当您使用Cygwin时,有时会收到类似这样的错误

When you are working with Cygwin, sometimes you would get an error like this



unable to remap some.dll to same address as parent someapp 4292 fork:
child 3964 - died waiting for dll loading, errno 11"




然后你需要运行rebaseall。

为了运行它,关闭所有Cygwin窗口,执行< cygwin_home> \bin\ash.exe ,它会打开一个新的控制台窗口

execute rebaseall

一旦完成,您可以再次回到运行Cygwin没有任何问题: - )

Then you would need to run rebaseall.
In order to run it, close all you Cygwin windows, Execute <cygwin_home>\bin\ash.exe, it would open a new console window
execute rebaseall there.
Once it has completed, you can go back to running Cygwin again without any issues :-)






OP gor 报告,他不得不重新启动以使 rebaseall 工作。

Dan Molding 提及评论:


The OP gor report he had to reboot to make the rebaseall work.
Dan Moulding mentions in the comments:


我只是补充说,关闭所有Cygwin窗口可能不够用。

您应该确保所有Cygwin进程和服务已终止和/或停止 ps -a ash






rsenna 在评论中报告


有关为什么需要的解释,请参阅 致命错误 - 无法重新映射到父地址相同的地址:Cygwin,Ruby on Rails,系统调用

For an explanation of why this is needed, see fatal error - unable to remap to same address as parent: Cygwin, Ruby on Rails, System calls

那么实际发生了什么?

在这种情况下,问题是由Windows管理他们的 .dll 的。

So what actually is happening?
Well, in this case, the problem was a result of the way windows manages their .dll's.

Windows使用 ASLR (地址空间布局随机化) $ c> .dll '。它会在每次启动您的计算机时将您的dll加载到不同的内存区域。

如果这种情况出现,那么下次您需要查找 .dll - 你可以崩溃你的系统。或者如果你看错了地方,你可能会崩溃你的系统。

那么这个系统怎么可能出局呢?好吧,运行你的cygwin安装程序可以影响记录保存,特别是如果 ASLR 已更改,但Cygwin持有较旧的副本(这可能发生,当安装程序未完成)。

Windows uses ASLR (address space layout randomization) to manage its .dll's. It loads your dll's into different areas of memory every time you boot your computer.
If this gets out of whack then the next time you look for that .dll - you can crash your system. Or if you look in the wrong place, you can crash your system.
So how can this system get out of whack? Well, running your cygwin setup program can affect record keeping, especially if the ASLR has changed but Cygwin is holding on to an older copy (this can happen when setup doesn't complete).

ASLR非常适合恶意软件或黑客防御。黑客不能经常为您的 .dll 尝试新地址,而不会导致系统崩溃。

ASLR is great against malware or hacker defense. Hackers can't constantly try new addresses for your .dll's without crashing your system.