現在、ローカルクローンとして65MBしかないリポジトリがサーバー上にあるという奇妙な状況に直面しています(GitBlitですが、それは問題ではありません)12GBのサイズです。ここでうまくいかない可能性のあるさまざまなアイデアを試しました。ここにリストがあります:
- サーバー上のブランチ
git ls-tree -r -t -l --full-name HEAD > stats.txt
ごとに実行し、その情報を収集しました。 cut -c53-60 <filename> | grep -v '-' | awk '{ sum += $1 } END { print sum }'
すべてのコミットのすべてのファイル サイズをまとめて結果を分析しました。- その結果、〜150 MBになりました
そのため、大きなファイルを含むコミットは見つかりませんでした。
私のローカルディレクトリ.git/objects/pack
には、現在17MBのパックファイルがあります(GC後、21MBになる前)。サーバー上のパック ファイルのサイズは、現在 12 GB です。
通常の方法でリポジトリのクローンをgit clone https://myserver.mycompancy.com/gitblit/r/projectID/projectID.git
作成し、ローカル コピーを取得しました。確かに、私はgit fetch --all
変更なしでその時をしました。
では、サーバー上のパック ファイルがはるかに大きい理由を見つけるにはどうすればよいでしょうか? GitBlit には自動 GC が実行されており、7 日より古いルーズ オブジェクトを圧縮します。
更新:git verify-pack -v
ローカルクローンとサーバーの両方でコマンドを推奨どおりに実行しました。結果は次のとおりです(統計としてのみ):
- 結果の行
- ローカル: 60,156
- サーバー: 16,456,844
そのため、サーバー上のパック ファイルは 1 倍 (~ 270 倍) 長く、これだけでパックの違いを説明できます。さらに多くの行がある理由を見つけるための次のステップは何ですか? 統計のいくつかの側面は、より興味深いものですか?