Git‘s nice Subversion (SVN) integration is one of the reasons I switched to using it within our company for my own revision control besides our official repository. Unfortunately, upgrading cygwin broke my system once again:
$ git svn dcommit
6 [main] perl 4760 C:\cygwin\bin\perl.exe: *** fatal error - unable to remap C:\cygwin\lib\perl5\site_perl\5.8\cygwin\auto\SVN\_Core\_ Core.dll to same address as parent(0x260000) != 0x990000 84 [main] perl 3224 fork: child 4760 - died waiting for dll loading, errno 11 panic: MUTEX_LOCK (45) [util.c:2331] at /usr/bin/git-svn line 787. panic: MUTEX_LOCK (45) [op.c:352].
The reason behind this behavior is a huge difference in the way processes and threads and libraries are created/handled on Windows and Linux.
git-svn relies on perl within cygwin and several perl libraries that use the same base-address for libraries internally. Of course, no two libraries can be loaded to the same base-address at the same time.
Long explanation, short way to fix the problem:
- Quit all cygwin processes
- Start ash (<cygroot>\bin\ash.exe) (<edit>Use “Run as Administrator…”</edit>)
- Execute /usr/bin/rebaseall
Voilla, that’s all. git-svn should work again.