34 lines
738 B
Bash
34 lines
738 B
Bash
|
#!/bin/zsh
|
||
|
|
||
|
git-dir-usage() {
|
||
|
local d x p
|
||
|
d=$(__z_git rev-parse --git-dir) || return $?
|
||
|
x=$(__z_git rev-parse --path-format=absolute 2>/dev/null)
|
||
|
if [ -n "$x" ] ; then
|
||
|
## older git version which does not support "--path-format=absolute"
|
||
|
:
|
||
|
else
|
||
|
d=$(__z_git rev-parse --path-format=absolute --git-dir)
|
||
|
fi
|
||
|
case "$d" in
|
||
|
*/* ) p=${d%/*} ; d=${d##*/} ;;
|
||
|
esac
|
||
|
## ${p:+ env -C "$p" } du -cd2 "$d"
|
||
|
if [ -n "$p" ] ; then
|
||
|
env -C "$p" du -cd2 "$d"
|
||
|
else
|
||
|
du -cd2 "$d"
|
||
|
fi | grep -Ev '^[0-9]\s' | sort -Vk2
|
||
|
}
|
||
|
|
||
|
git-gc() {
|
||
|
git-dir-usage || return $?
|
||
|
echo
|
||
|
idle git gc "$@"
|
||
|
echo
|
||
|
git-dir-usage
|
||
|
}
|
||
|
|
||
|
git-gc-force() {
|
||
|
git-gc --aggressive --force
|
||
|
}
|