Windows8 上で cygwin 版の git で pull/push/fetch に失敗する

現時点では msysgit 推奨。
win8:test01% git pull
     11 [main] git 3756 fhandler_disk_file::fixup_mmap_after_fork: requested 0xFFEA0000 != 0x0 mem alloc base 0xFFEA0000, state 0x1000, size 20480, Win32 error 487
    679 [main] git 3756 C:\cygwin\lib\git-core\git.exe: *** fatal error in forked process - recreate_mmaps_after_fork_failed
   1404 [main] git 3756 open_stackdumpfile: Dumping stack trace to git.exe.stackdump
      4 [main] git 1528 fork: child -1 - forked process 3756 died unexpectedly, retry 0, exit code 256, errno 11
error: cannot fork() for ssh: Resource temporarily unavailable
fatal: unable to fork

こんな感じで失敗する。 http://permalink.gmane.org/gmane.os.cygwin.devel/489 等を見ると、Windows 8 特有の現象のようにも感じられるが原因特定には至らなかった。

Cygwin版を使いたかったのは、 Subversion と連携するための git svn コマンドを利用する場合は、若干 cygwin版の方が依存している perl が新しく、Subversionリポジトリアクセス時に証明書認証をする際に嬉しかった、というのが過去の経緯。

現在中央リポジトリを Git 化しつつあり、日本語ファイル名の問題も今年春に解決したこともあるので、Git 中心の生活をするなら msys 版の方が安定しているようだ。

(GitHub for Windows も少し試したが、これはこれで癖が強い。また、少し触った範囲では日本語ファイル名の問題が解決されていないように見えたためアンインストールしてしまった。)

Windows環境、ということでは今後 Git Powershell cmdlets が提供されるような未来があるのだろうか?

# 追記

途中 rebaseall は実施しましたが、解決しませんでした http://superuser.com/questions/194529/cygwin-fatal-error-unable-to-remap-what-does-it-mean

直接は関係ないが、Windows向け開発で使う前提なら git config core.filemode false をしておくと幸せになれる。 http://stackoverflow.com/questions/1257592/removing-files-saying-old-mode-100755-new-mode-100644-from-unstaged-changes-in ついでに改行コードの自動変換を抑制する autocrlf false もある方がどちらかというと不測のファイル変換がなくなって嬉しいが、インストール後の既定の状態が autocrlf true であり、全員に徹底するのは困難なところが悩ましい。自動変換にまつわる問題は CSVの頃からあり、昔と同様ファイル拡張子を利用してバイナリであることを指定する、のでいいのかもしれない。

Windows8 上で cygwin 版の git で pull/push/fetch に失敗する」への7件のフィードバック

  1. nanasi より:

    gitではないですが、当方もwin8 x64+cygwinにてgcc-4ビルドで同様の
    fhandler_disk_file::fixup_mmap_after_forkエラーが出まくります。
    win7 x64では正常に動いていたのでwin8特有の問題な気がします。

    • nanashi2 より:

      nanasiさん同様、Win8 Pro. 64[bit] + gcc4.7.2 のビルドを試したら、冒頭で ↓ のエラーを吐いて失敗終了しました。
      fhandler_disk_file::fixup_mmap_after_fork: requested 0xFFEA0000 != 0x0 mem alloc base 0xFFEA0000, state 0x1000, size 20480, Win32 error 487

      Win7 Pro. 64[bit] では ↑ が起きませんでした。

  2. 私も、win8 x64で同じ症状に悩まされていましたが、さきほど、 1.7.17-1. を入れて、rebaseall したら、fhandler_disk_file::fixup_mmap_after_fork が出なくなりました。
    お試しください。

  3. tao より:

    nanashi2 さn、ありがとー。助かりましたー

  4. […] ということでぐぐったけど以下の様な難しそうな内容しか出てこない。 https://kamiyn.wordpress.com/2012/10/18/windows8-%E4%B8%8A%E3%81%A7-cygwin-%E7%89%88%E3%81%AE-git-%E3… もう、よくわかんないから、しばらくWindows8は、msysgit使おうかな。 […]

コメントを残す