我最近开始在git svn fetch
或git svn rebase
上收到以下git错误,但其他本地git命令工作正常:
以下是详细的错误消息:
C:\Git\bin\perl.exe: ** unable to remap C:\Git\bin\msys-ssl-0.9.8.dll to same address as parent -- 0x678F0000
0 [main] perl 1300 sync_with_child: child 7092(0x324) died before initialization with status code 0x1
567 [main] perl 1300 sync_with_child: *** child state child loading dlls
环境:
我尝试了多种解决方案,包括将mysysgit从1.8.2升级到最新的1.8.5.2,但还没有运气。
答案 0 :(得分:44)
此问题的根本原因及其任何变体是两个DLL已映射到同一地址,从而导致冲突。个别案件可以使用 rebase 来解决。
Msysgit 1.9.4-preview20140815包含a case of this issue with the libsvn_repos-1-0.dll and libneon-25.dll libraries。使用命令git svn
会出现与问题中描述的类似的错误消息。
错误报告包含此解决方法:
Rebase to free regions via: (execute as Administrator)
rebase -b 0x64000000 bin/libsvn_repos-1-0.dll
rebase -b 0x64200000 bin/libneon-25.dll
此git svn
正常工作后。
其他情况应该以类似的方式解决,为发生问题的DLL选择空闲地址。
答案 1 :(得分:4)
不是最佳答案,但重新启动会为我修复它。
似乎与this issue有关,所以可能与地址空间有关。
答案 2 :(得分:2)
我在Windows Server 2008 R2上遇到与git 1.9.4-preview20140815相同的问题。重启没有帮助。
我已将git降级为1.8.1.2-preview20130201版本,它解决了一个问题。
答案 3 :(得分:1)
尝试卸载mysysgit并重新安装。对于我的情况,这解决了这个问题。
干杯
答案 4 :(得分:0)
我有类似的问题,我尝试重新启动我的机器,但它没有用。当我将GIT降级到1.8.5.2时它起作用了。
答案 5 :(得分:0)
同样的问题,所有对dll-addresses的重新定位都不适用于我。现在'Git Svn'再次为我服务。以下步骤解决了问题(Git 1.9):
1)卸载
2)重新启动
3)安装最新的git版本(2.7)
答案 6 :(得分:0)
我在使用git 1.9.5.msysgit.0的系统上遇到了类似的问题。
我在错误中报告的dll为libsvn_swig_perl-1-0
。
确切的错误是:
C:\Git\bin\perl.exe: *** unable to remap C:\Git\bin\libsvn_swig_perl-1-0.dll to same address as parent -- 0x667B0000
在我的系统上,Git\bin\libsvn_swig_perl-1-0.dll
的原始基址为0x666C0000
(666C0000 to 66790FFF
)。
我设法用Git \ bin目录中的 rebase -b 0x667C0000 libsvn_swig_perl-1-0.dll 解决了这个问题(0x667C0000
是我的原始基地加上随机0x00100000
)。
查看dll当前基址的一种方法是使用 dumpbin / headers 。
答案 7 :(得分:-1)
我有同样的问题。重启没有帮助,降级没有帮助,但我做了
git reset --hard
它现在有效。
我知道这是副作用,但如果有人像我一样绝望......