Gitでclone中 fatal: early EOF, The remote end hung up unexpectedly, index-pack failed

シェアする

  • このエントリーをはてなブックマークに追加

スポンサードリンク

early EOF, The remote end hung  up unexpectedly, index-pack failed

WindowsのGitクライアント(Git SCM)をコマンドラインで使っています。
Gitで作ったリポジトリをcloneしている途中でエラーが発生しました。

何度やっても同じエラーが発生します。

スポンサードリンク

TortoiseGitを使っても Network error: Software caused connection abort

Git SCMがよくないのかなと思って、TortoiseGitをインストールしてTortoiseGitで試してみました。

WS000298

image

remote: Counting objects: 36990, done.
Write failed: Connection reset by peer
fatal: early EOF
remote: Compressing objects: 100% (14813/14813), done
fatal: The remote end hung up unexpectedly.
fatal: index-pack failed
git did not exit cleanly (exit code 128)

画面の通り、カメがコケた感じです。

何度もやってみて感じたことは、
remote: Compressing objects: 100% done の後で
Receiving objects: 9%(5404/59493), 46.60 MiB | 5.97 MiB/s
と表示されて、データがサーバーから転送されるのですが、データ転送途中でsshが切断されているような印象です。

スポンサードリンク

sshのクライアントを変更

これは、TortoiseGitの設定画面です。

image

Networkのところで、SSH clientとして、デフォルトでは、以下のようになっています。
C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe

sshの切断が原因と仮定するなら、いろいろ試してみようということで、sshのクライアントを変更してみました。

C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe (TortoiseGit付属のデフォルトのsshクライアント)
C:\Program Files\TortoiseGit\bin\TortoisePlink.exe (TortoiseGit付属で、互換性保持のためのインストールされる古いsshクライアント)
C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe (TortoiseSVN付属のsshクライアント)
C:\Program Files (x86)\Git\bin\ssh.exe (Git SCM付属のsshクライアント)

結果は。。。すべてNGでした。

サーバーでgit gc、git repackで解決

解決策がよくわからず調べてみたところ、とりあえず、サーバー側でGC(ガーベッジコレクション)してrepackせよと、書いてありました。

納得しないけれど他に解決策がないのでサーバー側でgcしてみました。

# git gc
#git repack -a -f -d --window=250 --depth=250

 

時間かかりましたが、リポジトリが超絶に小さくなりました。

そして、さきほどまで失敗していたgit cloneすると無事にclone出来ました。

Subversionではリポジトリの肥大化に苦労していましたが、さすがはGit。素晴らしい出来です。

調べる限り、gitは時々自動でgcを行うようですが、注意点として、サイズによっては時間がかかることと「Out of memory」することがあるようです。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です