最近、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にアップグレードするなど、複数のソリューションを試しましたが、まだうまくいきません。
この問題とその変種の根本的な原因は、2つのDLLが同じアドレスにマップされているため、競合が発生していることです。個々のケースは、を使用して解決できます リベース。
Msysgit 1.9.4-preview20140815には libsvn_repos-1-0.dllおよびlibneon-25.dllライブラリでのこの問題のケース が含まれています。コマンドを使用する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の空きアドレスを選択します。
最善の答えではありませんが、再起動すると修正されました。
この問題 に関連しているようですので、おそらくアドレス空間に関連しています。
Windows Server 2008R2のgit1.9.4-preview20140815でも同じ問題が発生しました。再起動は役に立ちませんでした。
Gitをバージョン1.8.1.2-preview20130201にダウングレードしましたが、問題は解決しました。
Mysysgitをアンインストールして再インストールしてみてください。私の場合、これで問題は解決しました。
乾杯
Git1.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
)でした。
私はなんとか問題を解決しました rebase -b 0x667C0000 libsvn_swig_Perl-1-0.dll Git\binディレクトリ内から(0x667C0000
は私の元のベースとランダムな0x00100000
です)。
Dllの現在のベースアドレスを確認する1つの方法は、 dumpbin /headers。
同様の問題が発生し、マシンを再起動しようとしましたが、機能しませんでした。 GITを1.8.5.2にダウングレードしたときに機能しました。
同じ問題、dllアドレスのすべてのリベースが私のために機能しませんでした。これで、「GitSvn」が再び機能します。次の手順で問題が解決しました(Git1.9)。
1)削除
2)再起動
3)最新のgitバージョン(2.7)のインストール