SourceTreeからシャロウクローン昔のバージョンではできてたはずなのに‥

githubの履歴が重くなってくるとリポジトリのclone(クローン)で以下のようなエラーが起こることがあります。

そんな時によく同僚から聞かれるのでトラブルシューティング方法のメモです。

git -c filter.lfs.smudge= -c filter.lfs.required=false -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks clone --branch master [email protected]:TEST_REPOSITORY.git
Cloning into '/TEST_REPOSITORY'...
FATAL ERROR: Server unexpectedly closed network connection
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

まずは以前アップした記事のshallow cloneをまず試してみるといいですが、

gitのクローンで履歴が重い時はshallow cloneを
gitを使い続けて運用していると履歴がどんどん溜まって重くなってきます。 そんな時にcloneするととても時間がかかることがあります。 過去の履歴情報はいらなくて最新版だけ取得でよければcloneが早くなるので便利です。 git ...

 

このシャロウクローンは以前はsource treeでもできていました。
ただ、sourcetree3系と最新の4系(for Mac)で確認しましたが、クローンの深さ指定がなくなっていました。実際にやってみてブランチ指定はできました。

MAC版だけ?

SourceTreeで重いリポジトリの最新のコミットだけcloneする - Qiita
はじめに重いリポジトリをそのままcloneしようとすると、時間がかかります。下手すると数時間かかったりして、回線が貧弱だとタイムアウトしてしまったりします。そうなると、最初からやり直し・・・とり…

昔のバージョンではたしかにこのようにクローンの深さ指定がありました。

sourcetreeは買収されて途中で大幅なアップデートがあったのでそのタイミングでいつの間にかなくなったのでしょうか?
issues等を漁ってみましたが謎でした。
https://jira.atlassian.com/browse/SRCTREE-2745
https://jira.atlassian.com/browse/SRCTREEWIN-2383
https://jira.atlassian.com/browse/BAM-7437

ご存知の方がいたら教えて下さい。

 

 

その他クローンできない時のトラブルシューティングとしては

httpのpostバッファを上げてみることや

git config --global http.postBuffer 524288000
git config --global http.postBuffer 1048576000

 

また、最近はリモートの会社も増えてきているので

そもそもネットワーク回線が貧弱ではないか、
もしくはVPN接続した状態でクローンしようとしていてVPN回線が細くて途中でハングアップしているなどの可能性も考えられると思います。

 

あとは、定期的にgit gcでリポジトリのメンテも大切ですね。

 

 

それでは。

開発日記
この記事の投稿者
AKI

ソフトウェアエンジニア歴10年以上、業務系システムからゲーム開発まで幅広く経験し
現在はフリーランスプログラマとして従事している。
得意言語: PHP, JavaScript, Java, C#(Unity)

フォローする
フォローする
スポンサーリンク
WoW creators
タイトルとURLをコピーしました