Home > Archives > 05 November 2020

05 November 2020

GitLab で refs/keep-around/XXXX なゴミが残る

昨日の GitLab リポジトリのの LFS 化でリポジトリのサイズが縮んだと思っていたのだけど,調べてみたらサーバ上のリポジトリは縮まってない.なんか変なゴミが残っている.

ということで色々調査した結果,どうも変な参照が出来てて,そいつが古いコミットを押さえているらしい.git log --graph --all --oneline --reflog でコミットの一覧を見てみたら,置き換えられて消えたはずのコミットが refs/keep-around/XXXX ってので参照されてて想定通りには消えてない.そしてその古いコミットが古い巨大ファイルを参照してしまっているので,git gc しても消されなくてリポジトリが小さくならない.

ということで,原因が分かったのでよく分からん参照を消してしまう:git update-ref -d refs/keep-around/XXXX

そして git for-each-ref して参照が消えたのを確認してから git gc してみたら,ちゃんとリポジトリが小さくなった.めでたし.

だがしかし,refs/keep-around ってなんぞ……?

Home > Archives > 05 November 2020

Search
Feeds

Page Top