#!/bin/bash BASE=/srv/mirror/gerrit-mirror umask 022 # silence pushd/popd pushd () { command pushd "$@" > /dev/null } popd () { command popd "$@" > /dev/null } for repo in $(find $BASE -type d -name "*.git"); do echo "----- $repo" pushd $repo if [ -f gc.log ]; then echo "WARNING: found ${repo}/gc.log" cat ${repo}/gc.log rm -f ${repo}/gc.log fi git reflog expire --expire=now --all ionice -c2 -n7 -- git gc --prune=now --aggressive >/dev/null done