Как найти N самых больших файлов в репозитории git?

Я хотел найти 10 самых больших файлов в моем репозитории. Сценарий, который я придумал, выглядит следующим образом:

REP_HOME_DIR=<top level git directory>
max_huge_files=10

cd ${REP_HOME_DIR}
git verify-pack -v ${REP_HOME_DIR}/.git/objects/pack/pack-*.idx | \
  grep blob | \
  sort -r -k 3 -n | \
  head -${max_huge_files} | \
  awk '{ system("printf \"%-80s \" `git rev-list --objects --all | grep " $1 " | cut -d\" \" -f2`"); printf "Size:%5d MB Size in pack file:%5d MB\n", $3/1048576,  $4/1048576; }'
cd -

Есть ли лучший / более элегантный способ сделать то же самое?

Под «файлами» я подразумеваю файлы, которые были зарегистрированы в репозитории.

40
задан Paul Roub 13 April 2016 в 19:35
поделиться