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

Git

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 cloneを実行すると。。。。。。。

無事にclone出来ました。

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

素晴らしい出来です。

調べる限り、git、は時々自動でgcを行うようですが、

注意点として、サイズによっては時間がかかることと

「Out of memory」することがあるようです。

Gitについてのおすすめの本

↓Gitについてのおすすめの本はコチラ

Git